早教吧作业答案频道 -->其他-->
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语言程序问题程序怎么写?求...的网友还看了以下:
1,把一根长6.28分米的绳子围成一个最大的圆,它的面积是多少平方分米?2,个数的三分之二等于三十 2020-05-14 …
一个200的圆分成18个孔怎么分?间隙一样?求计算公式 2020-07-08 …
VB程序设计题目!求一组数中所有偶数元素的平均值,要求:(1)编制一个自定义函数过程Even,计算 2020-07-22 …
求VB数值和与积创建一个工程:第一题:设计一个求1~10这十个数的和与积的程序.第二题:设计一个从 2020-07-23 …
求20道因式分解计算题,20道整式乘法计算题,20道二元一次方程组计算题,20道不等式组计算题,求 2020-07-30 …
用SUMPRODUCT公式汇总计算别的工作表行吗?我现在有两个工作表(汇总计算,工程量计算)我像求满 2020-10-31 …
用VC++设计一个教务信息管理的程序学计算机软件技术基础(VC)课程设计任务书一、题目:教务信息管理 2020-11-14 …
如果你买了一只10块钱的股票,平均每天上涨5%,你需要多少天才可以翻一倍.求计算公式 2020-11-15 …
电表反转后调整后怎么计算能耗反转是99928调整后是99985倍数300/5求计算公式求计算出电费电 2020-11-29 …
工程量计算-工程中途退场,问-已发生工程量按图纸相应部位计算还是按实际发生计算?求依据工程中途停工退 2020-12-02 …