口可口可22 发表于 2021-8-9 10:58:46

关于死循环while(1)的问题求助

这是我上个帖子某个大佬教我的模拟电梯的,可以正常输出当前电梯所在楼层
#include<stdio.h>

int main(void)
{
    int beg = 1,des;
   printf("当前楼层:%d ,请输入您想去的楼层:(按q放弃)",beg);
   while(scanf("%d",&des))
{
      if          (des > beg)   printf("电梯上行");
      else   if(des == beg) printf("无需移动");
       else                        printf("电梯下行");
      beg = des;
       printf("当前楼层:%d ,请输入您想去的楼层:(按q放弃)",beg);
}
      printf("Done");
      return 0;
}

之后我想用while(1)的方法来改,也可以出现同样的效果,但是一直显示在第一层,请问各位大佬们,怎样做才可以和上面得到一样的效果。下面是我的用while(1)来模拟的程序:
int main(void)
{
   int beg = 1;
                        int des,angle;
   printf("当前楼层:%d ,请输入您想去的楼层:(按q放弃)",beg);
   while(1)       
{
          des = scanf("%d",&des);
      if          (des > beg){
                                printf("电梯上行");
                        }
      else   if
                                (des == beg) printf("无需移动");
       else {
                               printf("电梯下行");
                       }
      beg = des;
       printf("当前楼层:%d ,请输入您想去的楼层:(按q放弃)",beg);
}
      printf("Done");
      return 0;
}
这里一直显示在第一层,有没有大佬教一下用while(1)来写和上面的代码是一样的效果

qiuyouzhi 发表于 2021-8-9 11:05:54

用代码格式发代码呗..看的我眼花

口可口可22 发表于 2021-8-9 11:08:33

qiuyouzhi 发表于 2021-8-9 11:05
用代码格式发代码呗..看的我眼花

咋样算代码格式,老哥{:10_266:}

大马强 发表于 2021-8-9 11:09:46

你不要用des接受呀
int main(void)
{
    int beg = 1;
    int des,angle;
   
   while(1)         
   {
           printf("当前楼层:%d ,请输入您想去的楼层:(按q放弃)",beg);
           scanf("%d",&des);
           if (des > beg)
            printf("电梯上行");
      else if(des == beg)
                        printf("无需移动");
                else
              printf("电梯下行");
                beg= des;
       }
      printf("Done");
      return 0;
}

大马强 发表于 2021-8-9 11:12:19

你scanf返回值是一个状态值,成功执行就返回1,所以一直在一楼

口可口可22 发表于 2021-8-9 11:17:33

大马强 发表于 2021-8-9 11:12
你scanf返回值是一个状态值,成功执行就返回1,所以一直在一楼

学废了,哈哈哈哈,谢谢大佬{:10_266:}
页: [1]
查看完整版本: 关于死循环while(1)的问题求助