//4. 设一个班有若干学生(如10人),请定义学生结构包含以下信息:学生学号、学生姓名、高级语言程序课的成绩,请写程序完成以下功能:
//(1)定义函数以学生结构指针(指向学生数组)为参数,逐个录入该班集的学生信息;
//(2)定义函数以学生结构指针(指向学生数组)为参数,求出该班高级语言程序课的排名第一的学生,并输出该第一名学生的学号、姓名及高级语言程序课成绩。
//(3)在主程序中完成测试。
#include<stdio.h>
struct Student
{
int number;
char name[20];
double scores;
};
void StuInfo(struct Student *p);
void Rank(struct Student *p);
int main()
{
struct Student stus[3];
struct Student *p;
p=stus;
StuInfo(p);
Rank(p);
return 0;
}
void StuInfo(struct Student *p)
{
printf("请输入学生的学号,姓名,以及成绩:");
for(int i=0;i<3;i++)
{
scanf("%d%s%f",&(p+i)->number,&(p+i)->name,&(p+i)->scores);
}
}
void Rank(struct Student *p)
{
struct Student *q;
q=p;
for(int i=0;i<2;i++)
{
if(q->scores<(p+i+1)->scores)
{
q=p+i+1;
}
}
printf("成绩最好的学生学号%d,姓名%s,成绩%f",q->number,q->name,q->scores);
}
请问为什么最后输出的scores总是0.000000?很是疑惑。