Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2022, 15:40   #1
Oqarkow
Новичок
Джуниор
 
Регистрация: 27.02.2022
Сообщений: 2
Вопрос Помогите упростить программу | начинающий программист

Всем привет, есть задание:
Даны два целых числа A и B (A < B). Вывести в порядке возрастания все нечётные числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.

Я написал программу, которая полностью отвечает требованием задания, но по-любому есть код гораздо проще и короче, кому не трудно, не могли бы объяснить как можно оптимизировать код? =)

Код:
#include "iostream"
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "locale.h"
using namespace std;

int main()
{
	setlocale(LC_ALL, "Russian");
tryAgain:
	int A, B, n = 0;
	cout << "Введите 2 целых числа, A < B\n";
	cout << "Число A = ";
	cin >> A;
	cout << "Число B = ";
	cin >> B;
	int b = B - 1;
if (A > B) 
{
	cout << "Недопустимые числа!\n\n";
	goto tryAgain;
}
	cout << "Нечетные числа от " << A << " до " << B << ":\n";
	if (A % 2 == 0) {
		for (int i = A; i < b; i += 2)
		{
			int a = A + (A % 2 == 0);
			cout << a << " ";
			A += 2;
			n++;
		}
	}
	else if (B % 2 == 0) {
		for (int i = A; i < b; i += 2)
		{
			A += 2;
			cout << A << " ";
			n++;
		}
	}
	else {
		B--;
		A+=2;
		for (int i = A; i < b; i += 2)
		{
			cout << A << " ";
			A += 2;
			n++;
		}
	}
	cout << "\nКоличество чисел, N = " << n << endl;
	system("pause");
}
Заранее огромное спасибо <3

Последний раз редактировалось Oqarkow; 27.02.2022 в 15:44.
Oqarkow вне форума Ответить с цитированием
Старый 27.02.2022, 15:58   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,552
По умолчанию

Вроде так:
Код:
#include "iostream"
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "locale.h"
using namespace std;

int main()
{
	setlocale(LC_ALL, "Russian");
tryAgain:
	int A, B, tmp, n = 0;
	cout << "Введите 2 целых числа, A < B\n";
	cout << "Число A = ";
	cin >> A;
	cout << "Число B = ";
	cin >> B;
if (A >= B) 
{
	cout << "Недопустимые числа!\n\n";
	goto tryAgain;
}
	cout << "Нечетные числа от " << A << " до " << B << ":\n";
        if (A % 2 == 0) tmp = A + 1 ; else  tmp = A + 2 ;
	for (int i = tmp; i < B; i += 2)
		{
			cout << i << " ";
			n++;
		}
	cout << "\nКоличество чисел, N = " << n << endl;
	system("pause");
}

Последний раз редактировалось digitalis; 27.02.2022 в 16:11.
digitalis вне форума Ответить с цитированием
Старый 27.02.2022, 16:28   #3
Oqarkow
Новичок
Джуниор
 
Регистрация: 27.02.2022
Сообщений: 2
По умолчанию

digitalis, Спасибо большое, выручил)
Oqarkow вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Начинающий программист a1b0c2 Общие вопросы по программированию, компьютерный форум 24 26.12.2019 19:10
[C++] Помогите упростить программу Chapa Помощь студентам 1 16.09.2017 14:47
помогите пожалуйста начинающий программист!заранее СПАСИБО. KalmGU Общие вопросы C/C++ 6 15.06.2015 17:56
Начинающий программист _Noname_ Свободное общение 3 03.03.2008 17:48