关于c语言,程序查错

来源:百度知道 编辑:UC知道 时间:2024/06/30 03:07:51
利用结构体数组实现:有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
要求用intput函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。
我自己写了一个,但运行时有点问题,第二个平均分没有计算。
#include<stdio.h>
#define N 10
struct student
{long num;
char name[20];
float score[3];
float average;
}stu[N];

void main()
{
float aver(float score[]);
int max(struct student stu[]);
int i;
struct student *p;
p=stu;
for(i=0;i<N;i++){
printf("请输入学生%d的学号和姓名,以空格隔开:\n",i+1);
scanf("%ld%s",&stu[i].num,&stu[i].name);
printf("请输入该学生的3门课成绩:\n");
scanf("%f%f%f",&p->score[0],&p->score[1],&p->score[2]);
stu[i].average=aver(stu[i].score);
}
printf("学号\t\t姓名\t\t平均成绩\n");
for(i=0;i<N;i++)
printf("%ld\t\t%s\t\t%f\

struct student *p;
p=stu;
for(i=0;i<N;i++){
printf("请输入学生%d的学号和姓名,以空格隔开:\n",i+1);
scanf("%ld%s",&stu[i].num,&stu[i].name);
printf("请输入该学生的3门课成绩:\n");
scanf("%f%f%f",&p->score[0],&p->score[1],&p->score[2]);
stu[i].average=aver(stu[i].score);
}

p 没有修改,一直是第一个结构。
for(i=0;i<N;i++){
printf("请输入学生%d的学号和姓名,以空格隔开:\n",i+1);
scanf("%ld%s",&stu[i].num,&stu[i].name);
printf("请输入该学生的3门课成绩:\n");
scanf("%f%f%f",&p->score[0],&p->score[1],&p->score[2]);
stu[i].average=aver(stu[i].score);
p++; // 改这里。
}