switch中的break只是用来退出switch的,所以不管输入对错,后面的代码都会运行的。你的代码实在太乱了,我只好整理一下了:
#include
int main(){
int b,f,g;
while(1){
printf("请输入小于100000的任意正整数,退出程序请输入0\n");
scanf("%d",&f);
if(f==0){
printf("感谢使用。\n");
break;
}else if(f<0||f>100000){
printf("输入错误,请重新输入\n");
}else{
printf("这是一个%d位数\n",f<10?1:f<100?2:f<1000?3:f<10000?4:5);
while(f){
b=f%10;
printf("%d",b);
f/=10;
}
printf("\n");
}
}
}