编程知识 cdmana.com

请问这段代码为什么会进入死循环?

初学者提问,运行下述代码,为什么当输入数字时,能正常运行。但是当输入字符时,会忽略scanf函数,从而进入死循环,而不是重新获取输入?

#include <stdio.h>int main(){    float MB = 33, GU;    bool PD;while (1)   {    PD = scanf_s("%f", &GU);    //printf("%d。\n",PD);    if (PD != 1)       printf("请输入数字。\n");    else        {            if (GU < MB)            printf("太小了。\n");                    else if (GU > MB)            printf("太大了。\n");            else           {   printf("答对了。\n");               break;           }        }    }    return 0;}

运行结果:

img

版权声明
本文为[CSDN问答]所创,转载请带上原文链接,感谢
https://ask.csdn.net/questions/7789449

Scroll to Top