早教吧作业答案频道 -->其他-->
C语言程序问题程序怎么写?求教.学生成绩统计(一维数组)从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:(1)统计
题目详情
C语言程序问题
程序怎么写?求教
.学生成绩统计(一维数组)
从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)以直方图方式统计各分数段的学生人数及所占的百分比。形式如下:
分数段 学生人数 图形
<60 3(10%) ***
60-69 8(…) ********
70-79 7(…) *******
80-89 8(…) ********
>=90 4(…) ****
程序怎么写?求教
.学生成绩统计(一维数组)
从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)以直方图方式统计各分数段的学生人数及所占的百分比。形式如下:
分数段 学生人数 图形
<60 3(10%) ***
60-69 8(…) ********
70-79 7(…) *******
80-89 8(…) ********
>=90 4(…) ****
▼优质解答
答案和解析
#include "stdio.h"
#define N 30
void main()
{
int grades[N]; //所有人的分数
int upAverage[N]; //超过平均分的学生序号
int unPass[N]; //不及格的学生序号
int nNum = 0; //学生总人数
int nUpAve = 0; //超过平均分的人数
int totGrade = 0; //总分
int n50,n60,n70,n80,n90; //各个分数段人数
double average; //平均分
int i;
//读入成绩
while (1){
scanf("%d",&grades[nNum]);
if (grades[nNum]<0) break;
totGrade += grades[nNum];
nNum++;
}
average = totGrade*1.0/nNum;
//统计各个分数段人数
n50 = n60 = n70 = n80 = n90 = 0;
for (i=0; i if (grades[i] >= average) upAverage[nUpAve++] = i;
if (grades[i] < 60) unPass[n50++] = i;
else if (grades[i] < 70) n60++;
else if (grades[i] < 80) n70++;
else if (grades[i] < 90) n80++;
else n90++;
}
//结果输出
printf("不及格人数: %d\n",n50);
printf("不及格学生序号:");
for (i=0; i printf("\n成绩在全班平均分及平均分之上的学生人数: %d\n",nUpAve);
printf("这些学生序号:");
for (i=0; i printf("\n以直方图方式统计各分数段的学生人数及所占的百分比\n");
printf("\n分数段 \t 学生人数\t图形");
printf("\n <60 \t %2d(%.0lf%%) \t", n50, n50*100.0/nNum); for (i=0; i printf("\n 60-69 \t %2d(%.0lf%%) \t", n60, n60*100.0/nNum); for (i=0; i printf("\n 70-79 \t %2d(%.0lf%%) \t", n70, n70*100.0/nNum); for (i=0; i printf("\n 80-89 \t %2d(%.0lf%%) \t", n80, n80*100.0/nNum); for (i=0; i printf("\n >=90 \t %2d(%.0lf%%) \t", n90, n90*100.0/nNum); for (i=0; i printf("\n");
}
#define N 30
void main()
{
int grades[N]; //所有人的分数
int upAverage[N]; //超过平均分的学生序号
int unPass[N]; //不及格的学生序号
int nNum = 0; //学生总人数
int nUpAve = 0; //超过平均分的人数
int totGrade = 0; //总分
int n50,n60,n70,n80,n90; //各个分数段人数
double average; //平均分
int i;
//读入成绩
while (1){
scanf("%d",&grades[nNum]);
if (grades[nNum]<0) break;
totGrade += grades[nNum];
nNum++;
}
average = totGrade*1.0/nNum;
//统计各个分数段人数
n50 = n60 = n70 = n80 = n90 = 0;
for (i=0; i
if (grades[i] < 60) unPass[n50++] = i;
else if (grades[i] < 70) n60++;
else if (grades[i] < 80) n70++;
else if (grades[i] < 90) n80++;
else n90++;
}
//结果输出
printf("不及格人数: %d\n",n50);
printf("不及格学生序号:");
for (i=0; i
printf("这些学生序号:");
for (i=0; i
printf("\n分数段 \t 学生人数\t图形");
printf("\n <60 \t %2d(%.0lf%%) \t", n50, n50*100.0/nNum); for (i=0; i
}
看了 C语言程序问题程序怎么写?求...的网友还看了以下:
小学生英语题目,问题见下.Twentydollars()notalotofmoneytohim.A 2020-04-26 …
假如你是九年级一班的Johnson.你的英语成绩非常好,七年级同学要组织“培养好习惯,成就我人生” 2020-05-13 …
学生A和B的语文、数学成绩及全班成绩如下表.已知全班学生的语文、数学成绩分布是正态分布,问A和B二 2020-06-10 …
教室里怨念横生,班长突然站起来郎声道:第一题A,二题C,三题教室里怨念横生,班长突然站起来郎声道: 2020-07-11 …
三校生英语题目1Twomentinthedesertlost()one-eyedcamel.这里叫 2020-07-22 …
近日,你班召开了一次关于“人们能否在家养狗”的主题班会。60%同学赞成在家养狗,40%同学反对在家养 2020-11-27 …
求一篇英语作文关于高一新课改学习科目等作文学校情况一千八百名学生三十二个班二百名教师班级情况高一三班 2020-12-06 …
全班50名学生,完成1道试题的测试情况是:全对1人,对14题1人,对13题10人对12题21人,对1 2020-12-06 …
某中学生英语报举行征文活动,征文主题为--Teachers’Day。假设你是图片中班长李华,你们高二 2021-01-12 …
某校初一年级学生自愿参加数学和英语口语兴趣班,数学兴趣班有120名男生80名女生.英语口语兴趣班有1 2021-01-29 …