Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Куда вставить функцию, с переменным числом параметров 
V
    Опции темы
MOHCTP
Дата 27.5.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.8.2008

Репутация: нет
Всего: нет



Код

#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 

Это сообщение отредактировал(а) MOHCTP - 27.5.2009, 20:52
PM MAIL   Вверх
zim22
Дата 27.5.2009, 19:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(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*
}


Это сообщение отредактировал(а) zim22 - 27.5.2009, 19:51


--------------------
PM MAIL   Вверх
MOHCTP
Дата 27.5.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.8.2008

Репутация: нет
Всего: нет



А в мою прогу куда его воткнуть?

Добавлено через 7 минут и 23 секунды
Ребят, помогите плиз, я уже не спал 40 часов со всем этим делом, это последнее что надо...
PM MAIL   Вверх
azesmcar
Дата 27.5.2009, 21:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Код

#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);
}


Это сообщение отредактировал(а) azesmcar - 27.5.2009, 21:16
PM   Вверх
Dov
Дата 27.5.2009, 21:31 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Цитата(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
А может быть тебе нужен массив переменной длины

Это сообщение отредактировал(а) Dov - 27.5.2009, 21:35


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
mes
Дата 27.5.2009, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



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

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


--------------------
PM MAIL WWW   Вверх
MOHCTP
Дата 27.5.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.8.2008

Репутация: нет
Всего: нет



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

Добавлено через 6 минут и 59 секунд
Ничё не компилируется... Давайте так, киньте прогу, которая скомпилируется, ЧТОБЫ ВСЁ НОРМАЛЬНО БЫЛО, Я ТОМУ 20 РУБЛЕЙ на счёт кину... р-кошелёк приложите... Ребят, ток помогите, а то я сейчас усну, а завтра сдавать...
PM MAIL   Вверх
MOHCTP
Дата 27.5.2009, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.8.2008

Репутация: нет
Всего: нет



Ребят, всё отбой, я больше не могу... Всем спасибо огромное, я спать.
PM MAIL   Вверх
azesmcar
Дата 27.5.2009, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



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

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

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

 smile 
PM   Вверх
Dov
Дата 27.5.2009, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



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

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


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
MOHCTP
Дата 27.5.2009, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.8.2008

Репутация: нет
Всего: нет



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 
PM MAIL   Вверх
azesmcar
Дата 27.5.2009, 22:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



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 необязательно.
PM   Вверх
MOHCTP
Дата 27.5.2009, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.8.2008

Репутация: нет
Всего: нет



А по поводу 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, можете скинуть исполнительный файл?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0921 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.