Только учусь с++. Написал простенькую программу, с циклом while. В начале вводится любое число. Если ввести более-менее маленькое всё работет, но когда я ввожу например 10000000000000000000, то программа не реагирует на нажатия в следуюшем вводе. Код:
#include "pch.h"
#include <iostream>
#include <cstdlib> // для system
#include <ctime>
#include <cmath>
using namespace std;
int main()
{
setlocale(0, "");
int money;
int k2;
cin >> money;
cin >> k2;
int start_time = clock();
int money_now = 1;
while (money_now * k2 <= money) {
money_now++;
}
cout << money_now;
int end_time = clock();
int search_time = end_time - start_time;
cout << "Программа работала: " << search_time;
return 0;
}
Не хочу вас расстраивать, но 10000000000000000000 никак не поместится в int...
В результате - у вас ввод неверный (просто не выполненный), приводит к тому, что в money и k2 оказываются непрочитанными, там лежит что угодно... Ну, и соответственно, если, скажем, в k2оказывается отрицательное значение - такой цикл может работать ну очень долго :)
Проверьте - у вас уже после первого ввода cin.good() даст false - типа такого вставьте:
cin >> money;
cout << cin.good() << endl;
cin >> k2;
cout << cin.good() << endl;
Проблема была в том, что 10000000000000 слишком большое число для int. Нужно было либо сменить тип перемнной либо умеьшить воодимое число. Это было полезно
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости