代码如下:
#include<stdio.h>
int main(void)
{
float score[][4]={{60,70,80,90},{56,89,67,68},{34,78,90,66}};
float *search(float (*pointer)[4]);//也是定义一个指向含有4个元素的数组的指针
float *p;
int i,j;
for(int i=0;i<3;i++)
{
p=search(score+i);//迭代更换排进行遍历,p会在search函数里面被赋search函数返回的pt指针的地址
if(p == *(score+i))//如果pt的地址被改为了改排的首元素的地址,则这一排就有不及格的情况存在,
//就是看pt是否指向该排的首元素的地址
{
printf("No.%d score :",i);
for(j=0;j<4;j++)
{
printf("%5.2f",*(p+j));
}
printf("\n");
}
}
return 0;
}
float *search(float (*pointer)[4])
{
int i=0;
float *pt;
pt=NULL;//先把pt指向空指针,既pt=0
for(;i<4;i++)
{
if(*(*pointer+i)<60)
pt=*pointer;//如果存在不及格的科目,就把pt的指向换为该排的首元素的地址
}
return pt;//返回pt的地址作为裁判的依据。
}