Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
Заблокирован

Написать функцию с переменным числом параметров, найти сумму чисел по заданной формуле

13.11.2015, 20:43. Показов 6514. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите решить указанную задачу, используя функции с переменным числом параметров.
1. Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int по формуле:
S=a1*a2+a3*a4+a5*a6+. . . . .
Написать вызывающую функцию main, которая обращается к функции sum не менее трех раз с количеством параметров 8, 10, 12.
Пожалуйста)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2015, 20:43
Ответы с готовыми решениями:

Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int по формуле: S=a1*a2+a3*a4+a5*a
Всем доброго времени суток! Дана следующая задача: Написать функцию sum с переменным числом параметров, которая находит сумму чисел...

Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int
Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int. Написать вызывающую функцию main, которая...

Написать функцию с переменным числом параметров, находящую минимальное из чисел типа int
Помогите и объясните: Написать функцию fmin с переменным числом параметров, которая находит минимальное из чисел типа int. Должно быть не...

20
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
14.11.2015, 08:39
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cstdarg>
#include <cstdlib>
 
int S(int n, ...)
{
  va_list vl;
  va_start(vl, n);
 
  int r = 0;
 
  for (int i = 0; i < n; i += 2)
    r += va_arg(vl, int) * va_arg(vl, int);
 
  va_end(vl);
 
  return r;
}
 
int main ()
{
  std::cout << S(8, 1, 2, 3, 4, 5, 6, 7, 8);
 
  system("pause");
  return 0;
}
1
Заблокирован
14.11.2015, 12:23  [ТС]
nmcf, а можете комментарии написать пожалуйста
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
14.11.2015, 12:31
А что комментировать-то? vl - это список аргументов, переданных через многоточие, va_start() - инициализация списка. va_arg() - получение очередного элемента указанного типа.
0
Заблокирован
14.11.2015, 22:16  [ТС]
nmcf, мне надо эту строчку копировать
C++
1
std::cout << S(8, 1, 2, 3, 4, 5, 6, 7, 8);
для 10 ,12 параметров

Добавлено через 50 минут
nmcf, Надо проверять n на четность?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
15.11.2015, 14:22
Просто добавляешь сколько надо. Первое число - количество, остальные - сами значения. Можешь проверить на чётность, если это важно.
0
Заблокирован
15.11.2015, 14:41  [ТС]
nmcf, nmcf, т.е. не обязательно проверять на четность?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
15.11.2015, 16:55
Если возможен вызов с нечётным количеством, то надо проверять.
0
Заблокирован
15.11.2015, 17:00  [ТС]
nmcf,а можете написать код для проверки и скажите куда его вставить пожалуйста?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
15.11.2015, 19:13
Что происходить-то должно при нечётном количестве?
Вот так просто проигнорирует лишний элемент:
C++
1
2
  for (int i = 0; i < n / 2; ++i)
    r += va_arg(vl, int) * va_arg(vl, int);
0
Заблокирован
16.11.2015, 21:35  [ТС]
nmcf, nmcf,nmcf, Только сумма почему то не совпадает с расчетами на калькуляторе
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
16.11.2015, 23:17
В моём примере всё совпадает, я проверял. Программу показывай.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
17.11.2015, 00:06
Функции с переменным числом параметров
1
Заблокирован
17.11.2015, 16:57  [ТС]
nmcf,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdafx.h"
#include <iostream>
#include <cstdarg>
#include <cstdlib>
#include <windows.h>
#include <locale>// библиотека для кириллицы
using namespace std;
int S(int n,int ...)//функция суммы
{
    va_list vl; //список аргументов, переданных через многоточие
    va_start(vl, n);//va_start() - инициализация списка
 
    int r = 0;
 
    for (int i = 0; i < n / 2; ++i) //  цикл для нахождения суммы     S=a1*a2+a3*a4+a5*a6+...
        r += va_arg(vl, int) * va_arg(vl, int); //va_arg() - получение очередного элемента указанного типа.
 
    va_end(vl);  /* выполнение корректного выхода */
 
    return r;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    cout <<"Вычисление суммы для 8 параметров"<<endl<< S(8, 1, 2, 3, 4, 5, 6, 7,8) << endl;
    cout <<"Вычисление суммы для 10 параметров"<<endl<< S(10, 1, 2, 3, 4, 5, 6, 7, 8,9,10) << endl;
    cout <<"Вычисление суммы для 12 параметров"<<endl<< S(12, 1, 2, 3, 4, 5, 6, 7, 8,9,10,11,12) << endl;
    system("pause");
    return 0;
}
выводит 120 220 364,а должно выводить 100 190 322
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.11.2015, 11:00
На восьмую строку посмотри. Откуда там лишний int? Вот так должно быть:
C++
1
int S(int n,...)
0
Заблокирован
19.11.2015, 13:20  [ТС]
nmcf, в вашем коде было
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.11.2015, 17:41
Мой пример во втором сообщении. Где там лишний int?
0
Заблокирован
19.11.2015, 18:09  [ТС]
nmcf, Запусти программу и посмотри,там неверно у тебя,я убрала этот int, выводит 120 220 364
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.11.2015, 23:19
Я проверял ещё до того, как ответил. Всё верно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cstdarg>
 
using namespace std;
 
int S(int n,...)//функция суммы
{
    va_list vl; //список аргументов, переданных через многоточие
    va_start(vl, n);//va_start() - инициализация списка
 
    int r = 0;
 
    for (int i = 0; i < n / 2; ++i) //  цикл для нахождения суммы   S=a1*a2+a3*a4+a5*a6+...
        r += va_arg(vl, int) * va_arg(vl, int); //va_arg() - получение очередного элемента указанного типа.
 
    va_end(vl);  /* выполнение корректного выхода */
 
    return r;
}
 
int main()
{
    cout <<"Вычисление суммы для 8 параметров"<<endl<< S(8, 1, 2, 3, 4, 5, 6, 7, 8) << endl;
    cout <<"Вычисление суммы для 10 параметров"<<endl<< S(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) << endl;
    cout <<"Вычисление суммы для 12 параметров"<<endl<< S(12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) << endl;
    
    return 0;
}
Результат:

Вычисление суммы для 8 параметров
100
Вычисление суммы для 10 параметров
190
Вычисление суммы для 12 параметров
322
0
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 153
21.11.2015, 12:49
nmcf, no
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2015, 12:49
Помогаю со студенческими работами здесь

Написать функцию mult с переменным числом параметров, которая находит произведение чисел типа float
Прошу помочь в следующем. Есть задание: Написать функцию mult с переменным числом параметров, которая находит произведение чисел типа...

Написать функцию kvadr с переменным числом параметров, которая определяет количество чисел, являющихся точными квадратами (2, 4, 9, 16,. . . ) типа in
Написать функцию kvadr с переменным числом параметров, которая определяет количество чисел, являющихся точными квадратами (2, 4, 9, 16,. ....

Написать функцию с переменным числом параметров
Написать функцию с переменным числом параметров, которая считае значение полинома вида: c0 + c1*x + c2*x^2 + c3*x^3 + ... Напишите код,...

Написать функцию с переменным числом параметров
Задание дали такое: Написать функцию с переменным числом параметров, в соответствии с вариантом, продемонстрировать вызов функции с...

Написать функцию с переменным числом параметров
Среднее арифметическое из элементов в списке параметров , стоящие на четных местах. вот что у меня получилось, дальше никак: #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru