Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Куда вставить функцию


Автор: MOHCTP 27.5.2009, 19:47
Код

#include <iostream.h>
#include <stdio.h>
#include<math.h>
double f(int s,int)
{
    return (double)s;
}
void main()
{
    int summ=0,l,i,a[300];
    printf("Vvedite dlinu ryada:");       // wiwod na ekran
    scanf("%d",&l);  //wwod dlini
    for(i=0;i<l;i++)
{
printf("A[%d]=",i);   //pe4atb zna4enija
scanf("%d",&a[i]);    //wwod zna4enii
summ+=a[i];       //pod4et summi
}
    printf("\n%f\n",f(summ,l));       // wiwod summi
}


Ребят, вот тело. Нужна значит прога для вычисления суммы ряда значений. Эту написал, считает, но не то, что надо. Тут должна быть функция с переменным числом параметров! Куда её воткнуть, я даже не представляю или я просто не понимаю, что от меня хотят. Помогите плиз кто-нибудь. 

P.S. Как я понял, от меня требуется, что бы эта программа считала так: надо нам, допустим, ввести 1000 элементов и посчитать их сумму, значит вводим 1000 и она считает, надо 10, значит вводим 10 и она считает... Пожалуйста подкорректируйте тело, я с ней сижу уже долго, а на самом деле кажется всё очень просто  smile 

Автор: zim22 27.5.2009, 19:51
Цитата(MOHCTP @  27.5.2009,  19:47 Найти цитируемый пост)
Тут должна быть функция с переменным числом параметра!

параметров

вот пример из MSDN
Код

#include <stdio.h>
#include <stdarg.h>

void testit ( int i, ...)
{
   va_list argptr;
   va_start(argptr, i);

   if ( i == 0 ) {
      int n = va_arg( argptr, int );
      printf( "%d\n", n );
   } else {
      char *s = va_arg( argptr, char* );
      printf( "%s\n", s);
   }
}

int main()
{
   testit( 0, 0xFFFFFFFF ); // 1st problem: 0xffffffff is not an int
   testit( 1, NULL );       // 2nd problem: NULL is not a char*
}

Автор: MOHCTP 27.5.2009, 20:53
А в мою прогу куда его воткнуть?

Добавлено через 7 минут и 23 секунды
Ребят, помогите плиз, я уже не спал 40 часов со всем этим делом, это последнее что надо...

Автор: azesmcar 27.5.2009, 21:16
Код

#include <stdio.h>
#include <stdarg.h>

int sum(int no, ...)
{
    va_list argptr;
    va_start(argptr, no);

    if ( no == 0 )
    {
        return 0;
    }
    int total = 0;
    for (int i = 0; i < no; ++i)
    {
        total += va_arg( argptr, int );
    }
    return total;
}
int main()
{
    int s = sum(5, 1, 2, 3, 4, 5)
    printf("%d\n", s);
}

Автор: Dov 27.5.2009, 21:31
Цитата(MOHCTP @  27.5.2009,  19:47 Найти цитируемый пост)
или я просто не понимаю, что от меня хотят.

Вот это скорее всего..  Очевидно, что тебе нужно что-то типа такого:
Код
int func( int * ar, int len )
{
    int sum = 0;

    for(int i = 0; i < len; i++)
        sum += ar[i];

    return sum;
}

int main()
{
    int   length;
    int * arr; 

    printf("Vvedite dlinu ryada: ");            // wiwod na ekran
    scanf("%d", &length);                       // wwod dlini

    arr = new int[length];

    for( int i = 0; i < length; i++ )
    {
        printf( "A[%d] = ", i );                // pe4atb zna4enija
        scanf("%d", &arr[i]);                   // wwod zna4enii
    }

    printf("\nResult: %d\n",func(arr, length)); // wiwod summi

    delete [] arr;
    return 0;
}


Добавлено @ 21:35
А может быть тебе нужен массив переменной длины? 

Автор: mes 27.5.2009, 21:37
Цитата(Dov @  27.5.2009,  20:31 Найти цитируемый пост)
А может быть тебе нужен массив переменной длины? 

а вот это похоже на правду smile

Автор: MOHCTP 27.5.2009, 21:42
Ребят, уже глаза закрываются... Сейчас буду пробовать компиллировать проги... Если не усну, отпишусь...

Добавлено через 6 минут и 59 секунд
Ничё не компилируется... Давайте так, киньте прогу, которая скомпилируется, ЧТОБЫ ВСЁ НОРМАЛЬНО БЫЛО, Я ТОМУ 20 РУБЛЕЙ на счёт кину... р-кошелёк приложите... Ребят, ток помогите, а то я сейчас усну, а завтра сдавать...

Автор: MOHCTP 27.5.2009, 21:58
Ребят, всё отбой, я больше не могу... Всем спасибо огромное, я спать.

Автор: azesmcar 27.5.2009, 22:00
Цитата(MOHCTP @  27.5.2009,  21:42 Найти цитируемый пост)
Ничё не компилируется

Все компилируется..
какой компилятор, какая ошибка?

Цитата(MOHCTP @  27.5.2009,  21:42 Найти цитируемый пост)
Я ТОМУ 20 РУБЛЕЙ на счёт кину

 smile 

Автор: Dov 27.5.2009, 22:00
Цитата(MOHCTP @  27.5.2009,  21:42 Найти цитируемый пост)
Ребят, уже глаза закрываются...    Ничё не компилируется...

Спать иди, в таком случае..       А завтра ошибки компилятора выложи.. 

Автор: MOHCTP 27.5.2009, 22:04
function should return a value... Выдаёт вот в этом фрагменте:
Код
    int s = sum(5, 1, 2, 3, 4, 5)
    printf("%d\n", s);
}


И тут выдаёт такое:
Код
    printf("Vvedite dlinu ryada: ");            // wiwod na ekran
    scanf("%d", &length); 


printf should fave a prototype

Добавлено через 1 минуту и 5 секунд
Компилятор TURBO с++ 3.0 

Автор: azesmcar 27.5.2009, 22:06
MOHCTP

Код

#include <stdio.h>
#include <stdarg.h>
int sum(int no, ...)
{
    va_list argptr;
    va_start(argptr, no);
    if ( no == 0 )
    {
        return 0;
    }
    int total = 0;
    for (int i = 0; i < no; ++i)
    {
        total += va_arg( argptr, int );
    }
    return total;
}
int main()
{
    int s = sum(5, 1, 2, 3, 4, 5)
    printf("%d\n", s);
    return 0; //добавил
}


ваш компилятор стандарту не соответствует..возвращение значения в функции main необязательно.

Автор: MOHCTP 27.5.2009, 22:06
А по поводу 20 рублей не надо смеяться.. Последние, которые есть на ВМ

Добавлено через 11 минут и 7 секунд
Ребят, спасибо огромное вам! Пойду я отдыхать... У меня с++ старый... Может от туда все проблемы... Пойду на отдых, завтра приду, обо всём отпишусь

Добавлено через 12 минут и 10 секунд
Цитата(azesmcar @ 27.5.2009,  22:06)
MOHCTP

Код

#include <stdio.h>
#include <stdarg.h>
int sum(int no, ...)
{
    va_list argptr;
    va_start(argptr, no);
    if ( no == 0 )
    {
        return 0;
    }
    int total = 0;
    for (int i = 0; i < no; ++i)
    {
        total += va_arg( argptr, int );
    }
    return total;
}
int main()
{
    int s = sum(5, 1, 2, 3, 4, 5)
    printf("%d\n", s);
    return 0; //добавил
}


ваш компилятор стандарту не соответствует..возвращение значения в функции main необязательно.

azesmcar, можете скинуть исполнительный файл?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)