例10.15在上题基础上,查找有一门以上课程不及格的学生,打印出他们的全部课程的成绩。程序如下:
main()
{void search(float (*p)[4],int n); /*函数声明*/
float score[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};
  search(score,3);
   }
void search(float (*p)[4],int n)
 {int i,j,flag;
for(j=0;j<n;j++)
{flag=0;
 for(i=0;i<4;i++)
if(*(*(p+j)+i)<60) flag=1;Break;}
if(flag==1)
{ printf("No.%D fails,his scores are:\n",j+1);
  for(i=0;i<4;i++)
  printf("%5.1f ",*(*(p+j)+i));
  printf("\n");
     }


程序运行结果如下:
No.1 fails,hiS scores are:
65.0 57.0 70.0 60.0
No.2 fails,hiS scores are:
58.087.090.081.0
在函数search中,flag是作为标志不及格的变量。先使flag=0,若发现某一学生有一门不及格,则使flag=1。最后用if语句检查flag,如为1,则表示该学生有不及格的纪录,输出其全部课程成绩。变量j代表学生号,i代表课程号。