C语言 求大神 求程序 拜托 好人一生幸福6

问题E:成绩的统计时间限制:1Sec内存限制:16MB提交:1371解决:487[提交][状态][讨论版]题目描述把百分制的考试成绩转换为五个等级:90~100:Exce... 问题 E: 成绩的统计
时间限制: 1 Sec 内存限制: 16 MB
提交: 1371 解决: 487
[提交][状态][讨论版]
题目描述

把百分制的考试成绩转换为五个等级:

90~100:Excellent

80~89:Good

70~79:Average

60~69:Pass

0~59:Failing

统计每个等级的成绩,并输出。

输入

输入多行,每行一个整数。输入的成绩总数不超过1000个。到EOF结束。

输出

按从好到差的顺序分等级输出成绩,第一行为“等级 : 成绩数”,成绩数为这一等级的成绩总数;第二行为具体的成绩,用逗号分隔开,每个逗号后面有空格,每行最后一个成绩后没有逗号和空格。最后一行后有回车。输出的成绩与输入的顺序相同。若某个等级没有成绩,则不输出第二行。

具体格式参照sample。

样例输入
-1
81
92
35
68
72
100
1000
95
60
59
72

样例输出
Excellent : 3
92, 100, 95
Good : 1
81
Average : 2
72, 72
Pass : 2
68, 60
Failing : 2
35, 59

提示

如果没有不及格的成绩,你的程序还能否正确运行吗?
展开
 我来答
醉俊杰fyy
推荐于2017-12-16 · TA获得超过195个赞
知道小有建树答主
回答量:121
采纳率:100%
帮助的人:122万
展开全部

OK,按照楼主的意思,实现了以下代码,楼主可以直接拷贝,运行一下,有问题再追问我。

#include <stdio.h>
#include <stdlib.h>
#define SIZE 1000
int level[5], scores[SIZE];
char output[5][10] = {"Excellent","Good","Average","Pass","Failing"};
int getLevel(int score)
{
 switch(score/10)
 {
  case 10:
  case 9:
   return 0;
  case 8:
   return 1;
  case 7:
   return 2;
  case 6:
   return 3;
  default:
   return 4;
 }
}
int main()
{
 char ch;
 int i, j,length = 0, tmp;
 freopen("input.txt", "r", stdin);
 for(i = 0; i < SIZE;)
 {
  ch = getchar();
  if(ch != EOF)
  { 
   ungetc(ch, stdin);
   scanf("%d", &tmp);
   if(tmp >= 0 && tmp <= 100)
   { 
    scores[i] = tmp;
    level[getLevel(scores[i])]++;
    i++;
   }
   
  }
  else break;
 }
 length = i;
 for(i = 0; i < 5; i++)
 {
  int count = 0;
  printf("%s:%d\n", output[i], level[i]);
  for(j = 0; j < length; j++)
   if(getLevel(scores[j]) == i)
   { 
    printf("%d", scores[j]);
    count++;
    if(count!=level[i])
     printf(", ");
    else
     putchar('\n');
   } 
 }
 
 return 0;
}
追问
请问为什么不能输入?   过几秒直接出来所有等级都是0个。
追答
因为程序里是文件输入输出,因为你题意输入的终止为EOF。
如果手动的话,删掉这句话。
freopen("input.txt", "r", stdin);
并且重新设定输入终止符。
还有疑问么
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式