В чем ошибка при вычислении суммы последовательности чисел? Решаю задачу, необходимо определить сумму чисел не пустой последовательности за которой следует 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
163 +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 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 93 377 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир