В чем ошибка при вычислении суммы последовательности чисел? Решаю задачу, необходимо определить сумму чисел не пустой последовательности за которой следует 0. Посчитать среднее арифметическое и геометрическое значения. Завис на сумме чисел, консоль показывает не верные результаты подсчета, например, ввожу 2 2 0, ответ компилятора: 11271656 .
Благодарен за любую помощь!#include
#include
#include
void main()
{
int x;
float sum = 0, prois = 1, sumg, suma, n = 0;
do
{
scanf("%f", &x);
n = n++;
sum = sum + x;
prois = prois*x;
suma = sum / n;
sumg = pow(prois, 1 / n);
} while (x != 0);
printf("Suma %d", &sum);
getch();
}

21 Авг 2019 в 06:13
187 +1
0
Ответы
1

Ошибка заключается в неверном использовании оператора инкремента. Вместо n = n++; нужно использовать n++;, чтобы увеличивать значение переменной n на 1 после каждой итерации цикла, а не просто присваивать ей текущее значение.
Также в функции printf необходимо исправить спецификатор типа данных для переменной sum на %f, так как это переменная типа float, а не int.

Исправленный код будет выглядеть так:

#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int x;
float sum = 0, prois = 1, sumg, suma, n = 0;
do
{
scanf("%d", &x);
n++;
sum = sum + x;
prois = prois*x;
suma = sum / n;
sumg = pow(prois, 1 / n);
} while (x != 0);
printf("Suma %.2f", sum);
getch();
}

После внесения этих изменений, код должен правильно вычислять сумму последововательности чисел и выводить верные результаты.

20 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир