@Genosse_Iv

Почему программа ломается при вводе числа с 11 и более знаками и как это можно исправить?

#include <iostream>
#include <cmath>   

int main() {
	setlocale(LC_ALL, "RU");

	int n, k, r;
	int a = 0;
	int z;
	int j;

	std::cin >> n;

	z = n;

	while (n != 0) // цикл
	{
		n = n / 10;
		std::cout << n << std::endl;
		a = a + 1;

	}

	std::cout << "Кол-во цифр в числе: " << a << std::endl;
	std::cout << "Список цифр: ";
	while (a != 0) {
		r = pow(10, a - 1);
		j = z / pow(10, a - 1);
		std::cout << j << " " ;
		z = z % r;
		a = a - 1;
	}

	return 0;
}


Простенькая программа для разбиения числа на цифры, однако при вводе числа с больше десятью знаками программа ломается.
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
Потому что int имеет ограниченный размер.
Для твоей программы не обязательно парсить число - можно его разбирать как строку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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