C语言 成绩统计直方图

1.学生成绩统计(一维数组)从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:(1)统计不及格人数并打印不及格学生... 1.学生成绩统计(一维数组)
从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)以直方图方式统计各分数段的学生人数及所占的百分比。形式如下:
分数段 学生人数 图形
<60 3(10%) ***
60-69 8(…) ********
70-79 7(…) *******
80-89 8(…) ********
>=90 4(…) ****
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
笃侠6A
推荐于2016-10-03 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3272万
展开全部
写了前面的两个功能:
#include<stdio.h>
#include<string.h>
#define N 30

int main(){
char xm[N][20], nm[20];
int cj[N];
int cnt,i,n=0,x;
float aver=0;
//输入成绩并求平均分
printf("请依次输入每个同学的姓名和成绩(绩为负值时表示数据结束):\n");
scanf("%s %d",nm, &x);
while(x>=0){
strcpy(xm[n],nm);
cj[n]=x;
aver+=x;
n++;
scanf("%s %d",nm, &x);
}
aver/=n;
//统计不及格人数并打印不及格学生名单
printf("不及格学生名单及人数如下:\n");
cnt=0;
for(i=0; i<n; i++){
if(cj[i]<60){
cnt++;
printf("%s\t%d\n",xm[i], cj[i]);
}
}
printf("共有 %d 个学生不及格。\n",cnt);
//统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单
printf("成绩在全班平均分及平均分(%.2f)之上的学生名单及人数如下:\n",aver);
cnt=0;
for(i=0; i<n; i++){
if(cj[i]>aver){
cnt++;
printf("%s\t%d\n",xm[i], cj[i]);
}
}
printf("共有 %d 个学生成绩在全班平均分及平均分之上。\n",cnt);
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式