Рассмотрим следующий код:Как решить эту проблему, связанную с переменными аргументами в C, используя библиотеку stdard.h?
#include<stdio.h>
#include<stdarg.h>
int sum(int, ...);
int main()
{
int a;
a=sum(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
printf("the sum is %d", a);
return 0;
}
int sum(int a, ...)
{
int s=0, i=1;
va_list ls;
va_start(ls, a);
while(i<=a)
{
s=s+va_arg(ls, int);
i++;
}
va_end(ls);
return s;
}
Приведенный выше код вычисляет сумму первых 10 натуральных чисел, используя переменные аргументы, с помощью функции суммы. a первый аргумент суммы, указано, что пользователь дает 10 натуральных чисел, сумма которых необходима, но я хочу, чтобы мы могли найти сумму, не указав количество чисел, которые я собираюсь добавить. I означает
sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
рассчитает сумму первых 10 натуральных чисел, который составляет 55. Пожалуйста, найти способ и скажите мне
И почему я должен сказать вам? Что вы искали? –
Сначала прочитайте страницу [Спросить]. –
Там * * не может получить количество аргументов для функции с переменными аргументами. Вам необходимо указать количество аргументов (например, вы делаете), использовать, например, строку форматирования (например, 'printf' и' scanf') или использовать специальное значение терминатора. –