C语言中输入11位数,前6位除以后5位

#include<stdio.h>
#include<math.h>
int TelephoneNumber;
printf("Please enter a 11 digits telephone number:\n");
fflush(stdin);
scanf_s("%d", &TelephoneNumber);

for (; TelephoneNumber > 99999999999 || TelephoneNumber < 10000000000;)
{
printf("The telephone number should be 11 digits, please re-enter\n.");
scanf("%d", &TelephoneNumber);
}

int FirstSix = TelephoneNumber / 100000;
int LastFive = TelephoneNumber % 100000;
float TelAnswer = FirstSix / LastFive;
printf("The answer of telephone is %f\n", TelAnswer);

为什么判断不正确(比如12345678901就不能跳出循环)并且输出的值也不对

输入超出了int范围
如果你是64位机器,可以用long long类型
不过更通用的做法是限制输入位数,%6d和%5d在输入的时候就分开两个
或者先输入为字符串,然后再进行判断和处理
温馨提示:答案为网友推荐,仅供参考