求C语言的大神!!为什么我把scanf放到while(1)和第二个 { 之间就会提示后面的第一个break非法呢?

2025-03-26 20:14:48
推荐回答(1个)
回答1:

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");
      }
   }
}