大一C语言问题,怎样输入多行测试数据再输出多行结果???

#include <stdio.h>
int main()
{
float x;
while (scanf("%f",&x)!=EOF)
{
if(x>100||x<0)
{
printf("Error\n");
}
else
{
if(x<=100&&x>=90)
{
printf("A\n");
}
else
if(x<90&&x>=80)
{
printf("B\n");
}
else
if(x<80&&x>=70)
{
printf("C\n");
}
else
if(x<70&&x>=60)
{
printf("D\n");
}
else
printf("E\n");
}
}
return 0;
}
怎样做到

输入
99.99
100.7788
81
55
-5.7
输出
A
Error
B
E
Error

我想问一下 你这是OJ里的题吗?如果是OJ 上的题,那我可以明确的告诉你,不用理会例子那种多行输入多行输出的形式。如果你那样做了,那反而会 wrong answer。就正常的输入一个数字,输出一个结果就好。追问

要求就是同时测试多组数据

追答

你现在写的这个程序的题目大概是 成绩评测 之类的东西。要求就是输入一个0——100的数据,然后对应的输出A、B、C之类题目。主要是让你练习对if——else语句的使用。当然也是练习swtich语句很好的题目。
你写的程序肯定是要提交到一个系统,然后由系统评测你程序的正确性。这个系统就做OJ。各个学校可能叫法不太一样,有些学校叫ACM评测系统等等之类的名字。这个系统我可以很确定的告诉你,它根本不要求你先输入所有的数据,再统一出结果。而是要求你输入一个数据,处理之后输出结果。
你说的要求,是你自己或者老师有这个要求,还是评测系统的要求?如果是评测系统,你能把题目的链接上传吗?
如果是你自己或者老师或者什么人的要求,那我能问一下 想达到什么样的效果?多组输入的最大值是多少?

追问

http://oj.hi-hi.cn/JudgeOnline/problem.php?cid=1084&pid=19
几乎所有竞赛题都是这样要求同时输入多组测试数据进行测试,并输出多组测试结果
这道题固定是输入五组数据 还有不限几组的 求解!

追答

我看到了你的题目,但是我没有你们学校OJ的账号,所以没办法给你验证到底我下面的代码能不能AC。五组输入可以用限定次数的方式做,不限定次数的输入就想你写的那样可以用while (scanf("%f",&x)!=EOF) 这种语句来做。当然如果你真的想救助,那可以给我一个账号,我可以保证给你一个AC的答案。可以私信给我账号。
#include
int main()
{
float x;

//while (scanf("%f",&x)!=EOF)
for(int i=0;i100||x=90)
{
printf("A\n");
}
else
if(x=80)
{
printf("B\n");
}
else
if(x=70)
{
printf("C\n");
}
else
if(x=60)
{
printf("D\n");
}
else
printf("E\n");
}
}
return 0;
}

追问

很有帮助!谢谢!!!

追答

不知道到底有没有帮到你,我曾经也在ACM待过,对ACM的题也能做点儿,有什么问题可以私信我一起讨论。我不太了解你们学校评测系统的好坏,你可以用一段时间感觉感觉。我个人向你推荐北大、杭电的OJ评测系统,题量大、题型丰富、测试数据恰当好处,用户数量众多,每一个题目都有好多人跟你一起讨论,而且这两个评测系统都是对外开放的。个人声明我不是北大也不是杭电的学生。绝无做广告的意思,真心想帮助你提高水平。如果你勤学苦练,估计大二的时候就应该可以代表学校参加省赛,如果你最够优秀,那你一定能在亚洲区比赛中获奖!
北大POJ:http://poj.org/
杭电HDUOJ:http://acm.hdu.edu.cn/

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-06
可以设置个结束标志,比如!在while中判断输入的值是不是结束标志。追问

可是输出的只是最后一个数据的测试结果

第2个回答  2014-11-06
#include <stdio.h>
int main(){
float x[5];
int n=5,i=0;
while (n--)
scanf("%lf",&x[5-n]);
for(i;i<5;i++){
if(x[i]>100||x[i]<0)
printf("Error\n");
else if(x[i]<=100&&x[i]>=90)
printf("A\n");
else if(x[i]<90&&x[i]>=80)
printf("B\n");
else if(x[i]<80&&x[i]>=70)
printf("C\n");
else if(x[i]<70&&x[i]>=60)
printf("D\n");
else
printf("E\n");
}
return 0;
}追问

用CB运行不出结果

本回答被网友采纳
相似回答