C语言问题!!!求助!!!
#include <stdio.h>struct student
{
int num;
char name;
float score1;
float score2;
float score3;
float aver;
};
void Find(struct student myClass,int *high,float *aver);
int main(void)
{
int high;/* high记录平均分最高的学生的序号 */
int i,aver=0;
struct student myClass;
printf("Please input studentsinfo:Num Name score1 score2 score3\n");
for(i=0;i<5;i++)
{
scanf("%d %s %d %d %d",&myClass.num,myClass.name,&myClass.score1,&myClass.score2,&myClass.score3);
}
Find(myClass,&high,&aver);
printf("\nThe Highest is %s(%d)\nscore1=%.2fscore2=%.2fscore3=%.2faver=%.2f\n",
myClass.name, myClass.num,
myClass.score1, myClass.score2, myClass.score3, myClass.aver);
return 0;
}
void Find(struct student myClass,int *high,float *aver)
{
float sum=0;
int i;
for(i=0;i<5;i++)
{
sum=sum+myClass.score1+myClass.score2+myClass.score3;
if((sum/6.0)>sum)
{
*aver=(float)(sum/6);
*high=i;
}
}
}代码如上,问题如下:
有五个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入五个学生的数据,并计算每个学生的平均成绩,显示最高平均分的学生的信息(用结构体编程),有没有大佬告诉我这段代码到底错哪了?程序始终运行不起来
#include <stdio.h>
struct Student
{
int num;
char name;
float score;
float aver;
};//这里要分号的把这个结构体放到main函数之前
int main()
{
void input(Student stu[]);//这3行放到结构体Student后面且可以不加关键词struct
Student max(Student stu[]);
void print(Student stu);
Student stu,*p=stu;//这里可以不要strcut
input(p);
print(max(p));
return 0;
}
void input(Student stu[])//可以不加关键词struct
{
int i,k;
printf("请输入学生姓名和学号,三门课成绩\n");
for(i=0;i<5;i++)
{
scanf("%s",stu.name);//用scanf更好不然每次输入完姓名后就要按回车键
scanf("%d",&stu.num);
for(k=0;k<3;k++)
{
scanf("%f",&stu.score);//要加取地址符号
}
stu.aver=(stu.score+stu.score+stu.score)/3.0;
}
}
Student max(Student stu[])
{
int i,m;
for(i=0;i<5;i++)
{
if(stu.aver>stu.aver)
{
m=i;
}
}
printf("\n成绩最高的学生是:\n");
printf("平均成绩:%6.2f\n",stu.aver);//平均成绩在输出函数中是输不出的因为输出函数中没有m的值
return stu;
}
void print( Student stu)
{
printf("学号:%d\n姓名:%s\n三门课成绩:%5.1f%5.1f%5.1f\n",stu.num,stu.name,stu.score,stu.score,stu.score);
}
页:
[1]