//返回指针值的函数
//有a个学生,每个学生有b门课程的成绩,要求在用户输入学生序号后,
//有a个学生,每个学生有b门课程的成绩,要求在用户输入学生序号后,
//能输出该学生的 全部成绩,用指针函数来实现
#include <stdio.h>
int main()
{
float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
float *search(float(*pp)[4],int n);
float *p;
int i,k;
printf("enter the number of student:");
scanf("%d",&k);
printf("the scores of NO.%d is:\n",k);
p=search(score,k);
for(i=0;i<4;i++)
{
printf("%4.2f ",*(p+i));
}
printf("\n");
return 0;
}
float *search(float(*pp)[4],int n)
{
float *pt;
pt=*(pp+n);
return pt;
}
//输出不及格学生的成绩
#include <stdio.h>
int main()
{ float *search(float(*pt)[4]);
float score[][4]={{60,70,80,90},{56,89,55,79},{34,78,80,90}};
float *p;
int i,j;
for(i=0;i<3;i++)
{ p=search(score+i);//
if(p==*(score+i))//
{ printf("NO.%d score:",i);
for(j=0;j<4;j++)
printf("%4.2f ",*(p+j));// 输出score[i][0]~score[i][3]的值
printf("\n");
}
}
return 0;
}
float *search(float(*pt)[4])
{
float *pp;
pp=NULL;//先使得pp的值为 NULL
int i;
for(i=0;i<4;i++)
{
if((*(*pt+i))<60)//如果有不及格课程,使pp指向score[i][0]
pp=*pt;
}
return pp;
}