c语言编程中连续按回车输入数据问题

题目为:输入一个华氏温度F,要求输出摄氏温度C.公式为:C=5/9*(F-32)第一行输入一个N,下面有N行,每行是一个一个华氏温度输出共N行,每行输出C,取两位小数.S... 题目为:
输入一个华氏温度F,要求输出摄氏温度C. 公式为: C = 5/9*(F-32)

第一行输入一个N,下面有N行,每行是一个一个华氏温度

输出共N行,每行输出C,取两位小数.
Sample Input
3
1
2
3

Sample Output
-17.22
-16.67
-16.11

ps:我其它都会,就是每次只能输入一个数据,然后电脑给出一个数据,不能连续输入,怎么解决?
我的代码:
#include<stdio.h>
int main()
{
float a,b;
while(scanf("%f",&a)!=EOF)
{
b= 5/9.0*(a-32);
printf("%.2f\n",b);
}
return 0;
}
展开
 我来答
xniren
2008-09-19 · TA获得超过1154个赞
知道小有建树答主
回答量:554
采纳率:100%
帮助的人:509万
展开全部
楼主的程序中的while循环语句完成的功能是从标准输入中逐一读入内容,再输出,因此,“每次只能输入一个数据,然后电脑给出一个数据,不能连续输入”。
如果需要达到连续输入,连续输出的功能,那么程序中必须增加代码用于保存连续的输入数据,然后再依次换算这些数据,连续输出。比如:将主函数体换成如下代码
int main()
{
int N;
int i;
float *a;
float b;
scanf("%d", &N);
a = (float *)malloc(N, sizeof(float));
for(i = 0; i < N; i++) // 读入
{
scanf("%f", &a[i]);
}
for(i = 0; i < N; i++) // 换算和输出
{
b= 5/9.0*(a[i]-32); // 换算
printf("%.2f\n", b);
}
free(a);
return 0;
}
weide361
2008-09-19 · TA获得超过604个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:323万
展开全部
问题出现在scanf,因为它读到回车就停止,却把回车留在缓冲区,下一次再来时,回车还在,它就继续把回车留着,所以什么数据都没读到就又停了,这是它的设计造成的,可以在循环中用getch()函数把每一次的回车去掉,就可以解决了,比如在printf("%.2f\n",b); 一行后加getch();就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友17b68dda5
2008-09-19
知道答主
回答量:22
采纳率:0%
帮助的人:32.2万
展开全部
int N,dat;
scanf("%d", &N);
while (N--) {
scanf("%d", &dat);
......
}
用循环来实现多组输入,就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tyoukiLL
2008-09-19 · TA获得超过501个赞
知道小有建树答主
回答量:429
采纳率:0%
帮助的人:453万
展开全部
把输入写入到while循环中

比如while((c=getchar()) != EOF)
{
code。。。
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
23330601
2008-09-19
知道答主
回答量:9
采纳率:0%
帮助的人:7万
展开全部
N是确定的数值么?要是已知的数值可以用数组存放!如果是未知的数值那就要用链表来解决了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式