Форум программистов, компьютерный форум CyberForum.ru

Функции с переменным количеством параметров, stdarg.h. Исправить код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать рекурсивную функцию, определяющую является ли заданная строка палиндромом http://www.cyberforum.ru/cpp-beginners/thread1110312.html
разработать рекурсивную функцию, определяющую является ли заданная строка палиндромом
C++ Вывести на экран строки, состоящие из заданного количества слов Вывести на экран строки, состоящие из заданного количества слов (количество задается с клавиатуры пользователем). http://www.cyberforum.ru/cpp-beginners/thread1110304.html
C++ В строке найти самое длинное симметричное слово
Помогите пожалуйста написать программу. Задача:В строке найти самое длинное симметричное слово(кабак, казак,...). Надо что-бы было реализовано через функции(например: *strpbrk, *strncpy, swscanf и тд.)
C++ Даны два одномерные массивы A (a [1], a [2], ..., a [n]) и B (b [1], b [2], ..., b [m]), размеры равны n и m . Упорядочить их указанными методами
Даны два одномерные массивы A (a , a , ..., a ) и B (b , b , ..., b ), размеры которых равны n и m соответственно. Упорядочить их указанными методами. Упорядоченные массивы слить в массив C (c , c , .., c ). Размер массива A, n 14 Метод упорядочения массива A - метод выбора Размер массива B, m 9 Метод упорядочения массива B - метод обмена
C++ Запись выражения http://www.cyberforum.ru/cpp-beginners/thread1110248.html
sin^3(x)+3.7/5; Добавлено через 16 секунд синус в кубе Добавлено через 12 минут ???? Добавлено через 3 минуты Че никто не может решить???
C++ В прямоугольной матрицы поменять местами строки, содержащие максимальный и минимальный ее элементы В прямоугольной матрицы поменять местами строки, содержащие максимальный и минимальный ее элементы. Большое вам спасибо!!! подробнее

Показать сообщение отдельно
DrOffset
6859 / 4070 / 927
Регистрация: 30.01.2014
Сообщений: 6,867
03.03.2014, 22:26     Функции с переменным количеством параметров, stdarg.h. Исправить код
Керра, две проблемы:
1) float при передаче через эллипсис расширяется до double (как и short, char до int)
2) ты передаешь целые числа, a ждешь float (не забываем, что эллипсис уничтожает контроль системы типов С++)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    cout << fixed << setprecision(3) << sum(5,1.f,2.f,3.f,4.f,5.f);
    return 0;
}
 
float sum(int n, ...)
{
    va_list VL;
    float s = 0;
    va_start(VL, n);
    for (int i = 0; i < n; i++)
        s += (float)va_arg(VL, double);
    va_end(VL);
    return s;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru