各路大神!请问为什么我这个程序不能通过输入任意的字母来结束循环。

各路大神!请问为什么我这个程序不能通过输入任意的字母来结束循环。

#include<stdio.h>
#define a 1.8
#define b 32.0
int main(void)
{
    printf("该程序将华氏度转化为摄氏度,下面请输入华氏度\n"   );
    printf("若您想启动摄氏度转华氏度程序,请先输入任意小于-169.5的数字\n");
    float Fahr,Cels;
    scanf("%f",&Fahr);
    while(Fahr>-169.5f)
    {
        Cels=(a)*(Fahr)+b;
        printf("%.1f华氏度=%.1f摄氏度\n",Fahr,Cels);
    scanf("%f",&Fahr);
    }
    printf("摄氏度转华氏度程序已启动,请输入温度/摄氏度\n");

    scanf("%f",&Cels);
    while(Cels>-273.16f)
    {
        Fahr=(Cels-b)/a;
        printf("%.1f摄氏度=%.1f华氏度\n",Cels,Fahr);
    scanf("%f",&Cels);
    }
    printf("bye"); 
    return 0;

 } 

2个回答

要求输入的是浮点数,如果输入字母的话属于非法输入数据,变量应该会被赋值为默认值0.0,while条件为真自然不会退出循环了。你可以下断点验证下。

如果输入字母,你要求输入的是%f,这样根本就不会赋值给Fahr,也就进不去你写的循环!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
请各路大神看一眼,这个错误为什么发生。。。。。。。(就是在比较num[0]的时候告诉我必须是可修改的左值)
4
IDEA使用git对项目进行clone或push pull等操作时一直弹输入密码框
2
请问各路大神乱码问题如何解决?
3
有一个小小的文件查重删除的问题,大神进来指点一二可好
5
请问前端是否有办法对长图进行切分?求各路大神支招
1
近期学习python,遇到了这个难题,请各路大神帮我解答一下?
2
请问各路大神,网站加载过慢导致的原因有哪些?
1
springcloud config client端通过访问server端远程获取git上面的yml中的内容,获取失败,求各路大神求解
1
自己通过python发送arp欺骗数据包影响别的主机上网,为何停止发送后别的主机就能恢复正常上网?
1
myecplise破解时遇到这种问题怎么办,systemid码无法生成
2
Centos7桌面上这个光盘,怎样给它重命名,求各路大神求解
0
有没有DB2函数实现将行专列的函数,看下图,求各路大神求解?急急急
0
求教各路大神,我这设备是怎么了? ESP8266MOD
2
求c++ 编译后的dll反编译工具
1
如何使java服务在liunx启动的另一服务在java服务停止启动的服务不会停止?
1
flume 读取csv数据时,发生数据被截取
1
Windows 10 版本的电脑 在 CMD 或命令控制符 窗口 输入 chcp 没有反应,基于打印中文 出现乱码
1
微服务如何解决跨域问题。跪求大佬!!
0
跪求!!! Android 10 APP从后台切换到前台的方法
0
拼车出行匹配与路径优化问题的模型的相应算法及程序表达