设有3个学生,每个学生有4门课程,要求用户输入学生的学号之后,输出该名学生的四门课程成绩
#include <stdio.h>
void main(){
float *search(float (*pointer)[4],int n); //养成好习惯,函数声明要在先
float score[][4]={{89,45,65,78},{78,65,85,75},{89,86,78,65}};//三个学生有了成绩..
float *p; //要调用的函数返回了一个指针,我们是需要接受的呀,定义指针变量*p来接受返回的pt指针变量
int i,k; //用户要知道是哪一个学生的呀,得有一循环变量来控制输出的第几门成绩呀
printf("please input the number of student:");
scanf("%d",&k);//输入了一个学生的号码
p=search(score,k); //来来来,接收一下返回的指针(这个指针是返回的数组的第k行)
printf("the student's scores are:");
for(i=0;i<4;i++)
{
printf("%5.2f\t",*(p+i)); //知道是第k行后,循环输出四门成绩
}
printf("\n");
}
float *search(float (*pointer)[4],int n){ //*pointer是指向一位数组的指针变量,这里是指一个学生有四门成绩
float *pt; //定义一个指针变量,用来指向第n个学生
pt=*(pointer+n); //这个指针变量用来指向第n个学生
return (pt); //返回指向第n个学生的指针变量
}
输出结果:
please input the number of student:1
the student's scores are:78.00 65.00 85.00 75.00
Press any key to continue