Задать вопрос
@raycheel

В чем ошибка при вычислении суммы последовательности чисел?

Решаю задачу, необходимо определить сумму чисел не пустой последовательности за которой следует 0. Посчитать среднее арифметическое и геометрическое значения. Завис на сумме чисел, консоль показывает не верные результаты подсчета, например, ввожу 2 2 0, ответ компилятора: 11271656 .
Благодарен за любую помощь!
#include <stdio.h>
#include <conio.h>
#include <math.h>

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();
}
  • Вопрос задан
  • 2421 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
	int n = 0;
	float sum = 0, prois = 1, sumg, suma, x;

	for (;;) {
		scanf("%f", &x);
		if (x == 0)
			break;
		n++;
		sum = sum + x;
		prois = prois*x;
	}
	if (n > 0) {
		suma = sum / n;
		sumg = pow(prois, 1. / n);
	}
	printf("Suma %f", sum);
	getch();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@OvLab
Судя по тому, что "int x;" должно быть "scanf("%d", &x);". Произведение будет всегда равно нулю, так как на него будет сначала умножаться, а уже потом выход из цикла.
Ответ написан
Комментировать
@raycheel Автор вопроса
@jcmvbkbc
Благодарю за внимание! Я пытаюсь вывести значение средней геометрической, но она в любом случае равна 1-це. Никак не могу разобраться.
#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
	int n = 0;
	float sum = 0, prois = 1, sumg, suma, x;

	for (;;) {
		scanf("%f", &x);
		if (x == 0)
			break;
		n++;
		sum = sum + x;
		prois = prois*x;
	}
	if (n > 0) {
		suma = sum / n;
		float step = 1 / n;
		sumg = pow(prois, step);
	}
	printf("Suma %f", sum);
	printf("Cped. arifmetich %f \n ", suma);
	printf("Cped. geometri4eskaya %f", sumg);
	getch();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы