题目:输入10个学生4门课的成绩,分别用函数求:
1.每个学生的平均成绩;
2.每门课的及格率;
3.最高分所对应的学生和课程
分析:10个学生,4门课成绩,故可以采用二维数组存储每个学生的成绩情况,再分别写函数求平均成绩、及格率、最高分,在主函数中调用即可。
代码:
#include<stdio.h>
# define m 10
# define n 4
//m-学生数,n-科目数
int score[m][n];
int average(int score[m][n])
{
int i,j,sum=0;
//第i个学生,第j门科目
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
sum+=score[i][j];
printf("第%d个学生的平均成绩为:%.2f\n",i+1,sum*1.0/n);
sum=0;
}
}
int pass(int score[m][n])
{
int i,j,num=0;
for(j=0;j<n;j++)
{
for(i=0;i<m;i++)
if(score[i][j]>=60&&score[i][j]<=100) num++;
printf("第%d门课及格率为:%.2f%%\n",j+1,num*1.0/m*100);
num=0;
}
}
int max(int score[m][n])
{
int i,j,k,t,gao=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
if(score[i][j]>gao)
{
gao=score[i][j];
k=i+1;
t=j+1;
}
}
printf("最高成绩第%d名学生,第%d门课\n",k,t);
}
int main()
{
int average(int score[m][n]);
int pass(int score[m][n]);
int max(int score[m][n]);
int i,j;
for(i=0;i<m;i++)
{
printf("请输入第%d名学生的四门课程成绩:",i+1);
for(j=0;j<n;j++)
scanf("%d",&score[i][j]);
}
average(score);
pass(score);
max(score);
}
输出: