Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Ищу помощи по лабораторным на C.  (Прочитано 786 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн prowoke

  • Автор темы
  • Любитель
  • *
  • Сообщений: 99
    • Просмотр профиля
Ищу помощи по лабораторным на C.
« : 24 Декабря 2010, 06:12:51 »
Помогите, пожалуйста с лабораторными. Лабы элементарные, просто я C вообще не знаю, а друг попросил помочь ему. В общем Такие задания:
1. Найти все символы в строке до ":" .  Т.е. строка       "asgadsgasdg:    sgasd  w:1efw" Тут надо вернуть только "asgadsgasdg".

2. Найти сумму ряда арифметической прогрессии. В лабе должна быть использована рекурсия.


Во второй вот, что я сделал:

#include <stdio.h>
int bingo(int a, int n)
{
int i, summ;
    while (n!=0)
    {
    i=i+a;
    summ=summ+i;
    bingo (a, n-1);
    return (summ);
    }
}
int main()
{
// Определяем типы данных.
int a, n, result;
// Ввод данных.
printf("Input a: ");
scanf("%d", &a);
printf ("Input n: ");
scanf ("%d", &n);
result = bingo (a, n);
printf ("Result = %d\n", result);
}

Почему то  в ответе выдаёт совсем не то, что нужно.


И вот, что со второй лабой. Вообще там легко нужно просто делать проверку равен ли 1 символ ":" , если нет то записать его, потом проверить второй, если не равен то пристаковать к предыдущему массиву. А когда очередной символ будет равен ":", то вернуть значение всех накопленных символов.
Проблема в том, что я C практически не знаю вообще ничего. Не семантику, ни синтаксис.  И не могу понять почему не работают такие вот например выражения:

int main(void) {
 char x[40]
x = "lol";
printf ("%s", x);
}

В общем помогите, пожалуйста.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Ищу помощи по лабораторным на C.
« Ответ #1 : 24 Декабря 2010, 08:42:03 »
Другу надо было честно сказать что сам ты в Си не шаришь и не сможешь ему помочь. А так ты его тупо подставляешь.
надо было слать сюда http://forum.vingrad.ru/forum/Vingrad-help-center.html

Оффлайн Not eXist

  • Активист
  • *
  • Сообщений: 916
    • Просмотр профиля
Re: Ищу помощи по лабораторным на C.
« Ответ #2 : 24 Декабря 2010, 13:18:08 »
prowoke
Первое задание выглядит примерно так:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char* str = "ewewdsfdffsdsd123: sd2";
    int i;
    for(i = 0; i < strlen(str); ++i)
        if(str[i] == ':')
            break;
        else
            printf("%c", str[i]);
    exit(EXIT_SUCCESS);
}
А вообще это примитив... На каком курсе такое изучают??
« Последнее редактирование: 24 Декабря 2010, 13:21:02 от Not eXist »

Оффлайн __v1tos

  • Участник
  • *
  • Сообщений: 105
  • Ubuntuu 10.10 x86-64
    • Просмотр профиля
Re: Ищу помощи по лабораторным на C.
« Ответ #3 : 24 Декабря 2010, 14:24:50 »
#include <stdio.h>

int bingo(int a, int d, int n)//а - первый член последовательности, d - шаг, n - сумма последовательности до шага n
{
if( n > 1 )
return bingo(a + d, d, n - 1);
return a;//Вернем первый член последовательности
}

int main()
{
// Определяем типы данных.
int a, d, n, result;
// Ввод данных.
printf("Input a: ");
scanf("%d", &a);
printf("\nInput d: ");
scanf("%d", &d);
printf ("\nInput n: ");
scanf ("%d", &n);
result = bingo (a, d, n);
printf ("Result = %d\n", result);
}

AMD Phenom II 945, GA-MA790GPT-UD3H (HD 3300), 5 GiB ram

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.