c语言编程中,看不懂的语句,需要帮忙注释

来源:百度知道 编辑:UC知道 时间:2024/06/17 11:03:10
利用指针法, 输入10个学生每人5门课的成绩,利用函数找到每门课的最高分和最低分
Input(int* p1,int* p2,int* p3,int* p4,int* p5) /*这句话什么意思,什么作用*/
{
int i;
for(i=1;i<=10;i++)
{
printf("input the five scores of student%d:\n",i);
scanf(" %d",p1);p1++;
scanf(" %d",p2);p2++;
scanf(" %d",p3);p3++;
scanf(" %d",p4);p4++;
scanf(" %d",p5);p5++;
}
}
Output(int* p1,int* p2,int* p3,int* p4,int* p5)
{
int i;
for(i=1;i<=10;i++)
{
printf("student %d",i);
printf("%d ",*p1);p1++;
printf("%d ",*p2);p2++;
printf("%d ",*p3);p3++;
printf("%d ",*p4);p4++;
printf("%d ",*p5);p5++;
printf("\n");
}
}
int GMVI(int* pSub) /*是函数调用吗?*/
{
int i=0,mVI=0;
for(i=1;i<10;i++)
{
if(*(pSub+i)>*(pSub+mVI))

Input(int* p1,int* p2,int* p3,int* p4,int* p5){}
定义一个函数,函数名Input,形式参数 有5个,都是整型指针,指针指向各门课程的成绩数组,p1 课程1,p1 课程2,p3 课程3,....

int GMVI(int* pSub) /*是函数调用吗?*/ {...}
不是函数调用,是定义(声明)函数,该函数会有一个整型返回值。有一个形式参数,是整型指针,它指向某门课程的成绩数组,返回值是最高成绩的那个数组元素的下标。

printf("sub1: student %d score:%d \n",GMVI(sub1)+1,*(sub1+GMVI(sub1)));/*看不懂是什么意思*/

GMVI(sub1) 是 学科1的最高成绩的那个数组元素的下标,下标编号从0起,所以 下标 加 1 ,正好是该学科最高成绩的学生的学号 -- GMVI(sub1)+1

sub1+GMVI(sub1) 指向的地址是 sub1[最高成绩的下标]
sub1 -- 等于sub1[0]的地址。*(sub1+GMVI(sub1))就是最高成绩。

打印格式描述部分,估计你懂,就不说了。