C语言里一个小程序,求高手解答啊,谢谢,没有错误提醒,但是输入数据之后敲Enter没反应

#include<stdio.h>#defineFREEZING0intmain(){floatwendu;intall_day=0;intcold_day=0;prin... # include <stdio.h>
# define FREEZING 0
int main ()
{

float wendu;
int all_day=0;
int cold_day=0;
printf("输入温度:");
while (scanf("%f",&wendu)==1)
{
all_day++;
if (wendu<FREEZING)
cold_day++;
}
if (all_day!=0)
printf("您一共输入了%d天的温度数据,其中有%d天的温度在0℃以下,占总天数的%.1f%%\n",all_day,cold_day,100*(float) cold_day/all_day);
if (all_day==0)
printf("您没有输入任何数据\n");
return 0;
}
展开
 我来答
Freedog_
2013-04-20 · 超过30用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:72.1万
展开全部

没错误

追问
你是用的哪个编译器,and,你电脑什么系统的,会跟这个有关系么,我输入 数据之后敲Enter就没一点反应。
追答
gcc&win7 应该没有关系, 输入数据后再输入一个字母按enter应该可以吧
_梦幻阳光
2013-04-20 · TA获得超过978个赞
知道答主
回答量:219
采纳率:0%
帮助的人:175万
展开全部
while (scanf("%f",&wendu)==1)这句话我看不明白啊,返回值等于1吗?和温度有关系?还有你怎么结束while循环啊,能打印才怪!
追问
while (scanf("%f",&wendu)==1)就是利用返回值在scanf()遇到非数字时终止循环,因为之前定义了wendu是浮点数据,输入非数字数据时scanf()的返回值自然就是0了,条件为假 不就终止循环了么?
追答
你在循环里面敲个printf试试,看看什么情况,这种情况我真没遇到过
你可以无限循环,然后在循环语句里面对某一个固定的数值判断,break,这样会好点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式