WolfWolf
@WolfWolf
студентка

Почему зацикливается и что вообще не так с решением задачи?

Напишите программу с использованием цикла while, которая находит произведение всех целых нечетных чисел в диапазоне, указанном пользователем.

Первое число диапазона не обязательно больше второго. Например, пользователь ввел 3 и 7 - результат будет 3*5*7=105. А если пользователь ввел 7 и 3 - результат также 105.

Если пользователь ввел два одинаковых четных числа (например, 6 и 6 или 0 и 0), то ответ 0.

Если введено два одинаковых нечетных числа (например, 5 и 5), то ответ должен быть равен этому числу (5).

Рекомендация: поскольку произведение целых чисел быстро растет, лучше для накопления произведения зарезервировать переменную типа double.

Мой код
#include <iostream>
using namespace std;

int main()
{
	int a, b, m;
	double proizv;
	cin >> a >> b;
	if (a > b)
	{
		m = b;
		b = a;
		a = m;
	}
	else
	{
		if (a == b)
		{
			if (a % 2 != 0) {
				cout << a;
			}
			else
			{
				cout << 0;
			}
		}
		else
		{
			if (a % 2 != 0)
			{
				proizv = a;
				while (a <= b)
				{
					a + 2;
					proizv *= a;
				}
				cout << proizv;
			}
			else
			{
				a++;
				proizv = a;

				while (a <= b)
				{
					a + 2;
					proizv *= a;
				}
				cout << proizv;
			}
		}
	}
	return 0;
}
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
@galaxy
Заменить a + 2; на a += 2;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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