有一个班4个学生和5门课程,我第二个找两门以上课程不及格的学生,输出他们的学号和全部课程,总是错了(求解)
#include<stdio.h>void main()
{ float a[4][5];
float (*p)[5];
int i,j;
void aver(float (*p)[5],int n);
void search(float (*p)[5],float all);
printf("输入全部的成绩:\n");
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%f",&a[i][j]);
aver(a,5);
search(a,0);
}
void aver(float (*p)[5],int n) //求第一门课程的平均分
{ float sum=0;
float c;
int k;
for(k=0;k<4;k++)
{ sum=sum+*(*(p+k)+0);
}
c=sum/5;
printf("第一门课程的平均分:%f\n",c);
}
void search(float (*p)[5],float all) //找出有两门以上的课程不及格的学生,输出他们的学号,总成绩和平均成绩
{ int m=0;
float averge;
int i,j,number,k;
for(i=0;i<4;i++)
{ for(j=0;j<5;j++)
{ if(*(*(p+i)+j)<60)
{ m++;
}
}
if(m>2)
{ for(k=0;k<5;k++)
{ all=all+*(*(p+i)+k);
}
number=i+1;
averge=all/5;
printf("学号:%d\n总成绩:%d\n平均成绩:%d\n",number,all,averge);
m=0;
}
}
}