#include <stdio.h>
void first_average(int (*p)[6]);
void fail(int (*p)[6]);
void excellent(int (*p)[6]);
int main()
{
int sh[4][6]={{76,34,65,21,78,1},{86,87,89,88,86,2},{88,100,100,100,100,3},{98,76,45,87,98,4}};
int (*p)[6];
p=sh;
printf("第一门课的平均成绩:\n");
first_average(p);
printf("两门以上不及格的学生:\n");
fail(p);
printf("每科成绩在85分以上或平均分90以上的学生:\n");
excellent(p);
return 0;
}
void first_average(int (*p)[6])
{
int ave=0;
int i=0;
for(;i<4;i++)
ave=ave+*(*(p+i));
ave=ave/4;
printf("%d\n",ave);
}
void fail(int (*p)[6])
{
int i,j;
int k=0,ave=0;
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
if(*(*(p+i)+j) < 60)
k++;
if(k>=2)
{
printf("学生的学号为:");
printf("%d\n",*(*(p+i)+5));
printf("每科成绩为:\n");
for(j=0;j<5;j++)
{
ave=ave+*(*(p+i)+j);
printf("%d\n",*(*(p+i)+j));
}
printf("\n");
ave=ave/5;
printf("平均成绩为:\n");
printf("%d\n",ave);
k=0;
}
}
}
}
void excellent(int (*p)[6])
{
int i,j;
int ave=0,k=0;
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
ave=ave+*(*(p+i)+j);
if(*(*(p+i)+j) > 85)
k++;
}
ave=ave/5;
if(ave>90 || k==5)
printf("学号为%d\n",*(*(p+i)+5));
ave=0;
k=0;
}
}