C语言课程实践-实践2实验报告
实验报告(实践2)
程序源代码
1.学生成绩统计一维数组从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别下列:
(1)统计不及格人数并打印不及格学生名单(2)统计成绩在全班平均分及平均分之上的学生人数并打印学生名单(3)统计各分数段的学生人数及所占的百分比 学生人数图形
<60 3(10%) ***
60-69 8() ********
70-79 7() *******
80-89 8() ********
>=90 4() ****
#include
#include
void main()
{
int score[30];
int number_all = 0; //输入的学生人数
int number_fail = 0; //不及格学生人数
int number_ave = 0; //平均分及平均分之上的学生人数
int i;
float average; //平均分
float sum; //所有学生分数总计
int percent; //学生在不同分数段的百分比
int number_60_69 = 0; //60-69分学生人数
int number_70_79 = 0; //70-79分学生人数
int number_80_89 = 0; //80-89分学生人数
int number_90_100 = 0; //90-100分学生人数
//
//程序1第1问
for(i=0; i<30; i++)
{
printf("请输入第%d个学生成绩:",i+1);
scanf("%d",&score[i]);
if (score[i] >100)
{
printf("您输入的分数应在不能超多100分,请您重新输入!");
i--;
continue;
}
number_all++;
if (score[i] < 0)
{
number_all--;
break;
}
}
for(i=0,sum=0; i
{
sum=score[i]+sum;
}
average=sum/number_all;
for(i=0; i
{
if (score[i] < 60)
{
number_fail++;
printf("不及格的学生序号是%d号\n",i+1);
}
else if (score[i] >= 60 && score[i]<=69)
number_60_69++;
else if (score[i] >= 70 && score[i]<=79)
number_70_79++;
else if (score[i] >= 80 && score[i]<=89)
number_80_89++;
else
number_90_100++;
}
printf("不及格学生的人数是%d人\n\n",number_fail);
//程序1第2问
for(i=0; i
{
if (score[i]>=average)
{
number_ave++;
printf("平均分及平均分之上的学生序号是%d号\n",i+1);
}
}
printf("平均分及平均分之上的学生人数是%d人\n\n",number_ave);
//程序1第3问
printf("分数段 学生人数图形\n");
printf(" <60 %2d(%2d%%) ",int(number_fail),100*number_fail/number_all);
for(i=1;i<=number_fail;i++)
printf("*");
printf("\n 60-69 %2d(%2d%%) ",int(number_60_69),100*number_60_69/number_all);
for(i=1;i<=number_60_69;i++)
printf("*");
printf("\n