Только учусь с++. Написал простенькую программу, с циклом 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. Нужно было либо сменить тип перемнной либо умеьшить воодимое число. Это было полезно
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть приложение на Qt, и обычно располагается в Program FilesВ некоторых случаях, когда запускается программа, она запрашивает/не запрашивает права...
Сейчас изучаю потоки в андроид, и мое задание - сделать счетчик, который добавляет числа от 0 до 9 в TextView через LoaderПонятно, что Loader нужен для...