请用C语言帮忙写个程序,一定要用C语言的表达,不能用C++,谢谢了,急用

实验6:一维数组和函数综合编程练习
学生成绩统计
从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)统计各分数段的学生人数及所占的百分比。
主函数流程:
定义两个数组score[ARR_SIZE]和num[ARR_SIZE],分别保存学生的学号和成绩;ARR_SIZE用宏定义。
编写函数ReadScore,从键盘输入一个班级的学生学号和成绩。
编写函数GetFail统计不及格人数并打印不及格学生名单;
编写函数GetAver计算全班的平均分;
编写函数GetAboveAver统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
编写函数GetDetail统计各分数段的学生人数及所占的百分比。
注意:编写程序时的其它参数自行设定。

#define ARR_SISE 30
float score[ARR_SISE];
char *num[ARR_SISE];
float aver=0;

void readscore()
{
int n=0;
for(n=0;n<ARR_SISE;n++)
{
printf("请输入第%d个人的信息:\n",n);
scanf("%f%s",&score[n],num+n);
}

}

void getfail()
{
int n,m=0;
for(n=0;n<ARR_SISE;n++)
{
if(score[n]<60)
{
m++;
}
}
if(m==0)
printf("没有不及格的人!\n");
else
{
printf("不及格的人有%d个,他们是:\n",m);
for(n=0;n<ARR_SISE;n++)
{
if(score[n]< 60)
{
printf("%s ",num+n);
}
}
printf("\n");
}
}
void getAver()
{
int n;
float sum=0.0;
for(n=0;n<ARR_SISE;n++)
sum+=score[n];
aver=sum/ARR_SISE;
printf("平均分是:%2f\n",aver);
}
void getAboveAver()
{
int n=0,m=0;
printf("在平均分之上的人是:");
for(n=0;n<ARR_SISE;n++)
{
if(score[n] > aver)
{
printf("%s\t",num+n);
m++;
}
}
printf("\n共有%d个\n",m);
}
void getdetail()
{
int n,i=0,j=0,k=0,m=0;
for(n=0;n<ARR_SISE;n++)
{
if(score[n]< 60)
j++;
else if(score[n] > 60&&score[n] < 70)
i++;
else if(score[n] >70&&score[n] < 80)
k++;
else m++;
}
printf("不及格的有:%2f%%\n",(j*100.0)/ARR_SISE);
printf("60~70的有:%2f%%\n",(i*100.0)/ARR_SISE);
printf("70~80的有:%2f%%\n",(k*100.0)/ARR_SISE);
printf("80以上的有:%2f%%\n",(m*100.0)/ARR_SISE);
}

void main()
{
readscore();
getfail();
getAver();
getAboveAver();
getdetail()
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-13
你给10分,喊别个给你码要一大篇。。。。。累,算了,虽然是很简单的程序
相似回答