В чем ошибка при вычислении суммы последовательности чисел? Решаю задачу, необходимо определить сумму чисел не пустой последовательности за которой следует 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(); }
Ошибка заключается в неверном использовании оператора инкремента. Вместо 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(); }
После внесения этих изменений, код должен правильно вычислять сумму последововательности чисел и выводить верные результаты.
Ошибка заключается в неверном использовании оператора инкремента. Вместо 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();
}
После внесения этих изменений, код должен правильно вычислять сумму последововательности чисел и выводить верные результаты.