有一个班4个学生,5门课程。①求第一门课程的平均分;②找出有2门(含)以上课程不及格的学生,输出他们的学号(1-4)和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编3个函数实现以上3个要求。
输出数据:
第一行输出第一门课程的平均分
接下来输出有2门及以上课程不及格的学生,每个学生占3行
接下来输出平均成绩在90分以上或全部课程成绩在85分以上的学生,每个学生占3行
整数成绩用%4d,实数用%.2f输出。
函数接口定义:
void average1(int (*p)[5],int n);
void average2(int *p, float *a);
void find1(int (*p)[5],float *a);
void find2(int *p,float *a);
其中函数 average1
输出第一门课的平均分,average2
计算每个学生的平均分放在数组a[ ]中, find1
输出有两门以上不及格的学生, find2
输出平均分在90分以上或每门课85分以上的学生。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
void average1(int (*p)[5],int n);
void average2(int *p, float *a);
void find1(int (*p)[5],float *a);
void find2(int *p,float *a);
int main()
{int score[4][5];
int i,j;
float aver[4];
for (i=0; i<4; i++) //输入4个学生5门课的成绩
for (j=0; j<5; j++)
scanf("%d",*(score+i)+j);
average1(score,4); //计算第一门课的平均分
average2(*score,aver); //计算每个学生的平均分放在数组aver中
find1(score,aver); //输出有两门以上不及格的学生
find2(*score,aver); //输出平均分在90分以上或每门课85分以上的学生
return 0;
}
/* 你的程序将嵌在这里 */
输入样例:
96 82 88 99 97
78 89 96 76 65
67 55 87 34 44
87 88 89 87 93
输出样例:
average of score 1 is 82.00
number 3 failed with 3
his score is 67 55 87 34 44
average score is 57.40
number 1 is very good
his score is 96 82 88 99 97
average score is 92.40
number 4 is very good
his score is 87 88 89 87 93
average score is 88.80
参考
void average1(int (*p)[5],int n)
{
int i,s;
for(i=0,s=0; i<4; i++)
{
s=s+p[i][0];
}
printf("average of score 1 is %.2f\n",s*1.0/4);
}
void average2(int *p, float *a)
{
int i,j,s;
float average;
for(i=0; i<4; i++)
{
for(j=0,s=0; j<5; j++)
{
s=s+p[i*5+j];
}
average=s*1.0/5;
a[i]=average;
}
}
void find1(int (*p)[5],float *a)
{
int i,j,n;
for(i=0; i<4; i++)
{
for(j=0,n=0; j<5; j++)
{
if(p[i][j]<60)
{
n++;
}
}
if(n>=2)
{
printf("number %d failed with %d\n",i+1,n);
printf("his score is%4d%4d%4d%4d%4d\n",p[i][0],p[i][1],p[i][2],p[i][3],p[i][4]);
printf("average score is %.2f\n",a[i]);
}
}
}
void find2(int *p,float *a)
{
int i,j,n;
for(i=0; i<4; i++)
{
for(j=0,n=0; j<5; j++)
{
if(p[i*5+j]>85)
{
n++;
}
}
if((n==5)||(a[i]>90.0))
{
printf("number %d is very good\n",i+1);
printf("his score is%4d%4d%4d%4d%4d\n",p[i*5+0],p[i*5+1],p[i*5+2],p[i*5+3],p[i*5+4]);
printf("average score is %.2f\n",a[i]);
}
}
}