@holy_paster

Почему цикл в C++ застревает?

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

Написал код, но почему-то он в каком моменте застревает.
#include<iostream>
using namespace std;

void main()
{

	setlocale(LC_ALL, "ru");
	
	int num_count = 0;

	int num_bor_1;
	int num_bor_2;



	cout << "Введите первую часть диапазона" << endl;
	cin >> num_bor_1;
	cout << "Введите вторую часть диапазона" << endl;
	cin >> num_bor_2;

	while (num_bor_1 <= num_bor_2)
	{
		if ((num_bor_1 % 2) != 1)
		{
			num_count += num_bor_1;
			num_bor_1++;
		}

	}

	cout << num_count << endl;

}

После часа раздумья и безнадежного действий, посмотрел ответ.
Ответ:
void main()
{

	setlocale(LC_ALL, "ru");
	
	int num_count = 0;

	int num_bor_1;
	int num_bor_2;



	cout << "Введите первую часть диапазона" << endl;
	cin >> num_bor_1;
	cout << "Введите вторую часть диапазона" << endl;
	cin >> num_bor_2;

	do
	{
		if ((num_bor_1 % 2) == 1)
		{
			num_count += num_bor_1;
		}
		num_bor_1++;




	} while (num_bor_1 < num_bor_2);
	
	cout << num_count << endl;

}

Больших отличий я не заметил, просто я использовал while вместо do while. Буду рад любому объяснению
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Развели тут, понимаешь, циклы...
int first_odd = first | 1;
int last_odd = (last - 1) | 1;
int sum_odds = (first_odd + last_odd) * ((last_odd - first_odd) / 2 + 1) / 2;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Больших отличий я не заметил


Я удалил неважные части кода, чтобы большое отличие стало более заметно. Вот что получилось из твоего кода:
while (num_bor_1 <= num_bor_2)
  {
    if ((num_bor_1 % 2) != 1)
    {
      num_bor_1++;
    }
  }


А вот что получилось из решения:
do
  {
    num_bor_1++;
  } while (num_bor_1 < num_bor_2);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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