Ошибка кода C: я не уверен, почему я получаю эту ошибку
В этих строках кода я хочу найти "длину" номера кредитной карты, "NUM". Я не могу понять, почему я получаю эту ошибку.
Вход и выход:
Введите число: `123456789 повторов: 12345678912 (/дома/Убунту/рабочее место/pset1/кредит+0x42bf01): Ошибка времени выполнения: значение 1е+11 находится вне диапазона представимых значений типа 'int' (/дома/Убунту/рабочее место/pset1/кредит+0x42bf01): Ошибка времени выполнения: значение 1е+10 вне диапазона представимых значений типа 'int' недействительным
~/рабочее место/pset1/ $ ./кредит введите номер: 123456789123456 (/дома/Убунту/рабочее место/pset1/кредит+0x42bf01): Ошибка времени выполнения: значение 1е+11 находится вне диапазона представимых значений типа 'int' (/дома/Убунту/рабочее место/pset1/кредит+0x42bf01): Ошибка времени выполнения: значение 1е+13 находится вне диапазона представимых значений типа 'int' (/дома/Убунту/рабочее место/pset1/кредит+0x42bf01): ошибки во время выполнения: значения 1e+15 выходят за пределы диапазона представимых значений для типа 'int'
(/дома/Убунту/рабочее место/pset1/кредит+0x42bf01): Ошибка времени выполнения: значение 1е+10 вне диапазона представимых значений типа 'int' (/дома/Убунту/рабочее место/pset1/кредит+0x42bf01): Ошибка времени выполнения: значение 1е+12 выходит за пределы диапазона представимых значений типа 'int' (/дома/Убунту/рабочее место/pset1/кредит+0x42bf01): ошибки во время выполнения: значение 1е+14 находится вне диапазона представимых значений для типа 'int' недействительным
Что я уже пробовал:
Вот мой код:
/*PROMPT USER FOR NUMBER*/ printf("Enter number: \n"); /*STORE NUMBER AS A LONG NUMBER*/ long NUM = GetLongLong(); /*VARIABLES FOR WHILE LOOP*/ long long range1 = 9; long long length = 1; /*FIND NUM'S LENGTH*/ while (NUM > range1) { range1 = range1 * 10LL + 9; length += 1; }