Shimi 发表于 2020-3-24 16:04:51

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;
                }
        }
}代码如上,问题如下:
有五个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入五个学生的数据,并计算每个学生的平均成绩,显示最高平均分的学生的信息(用结构体编程),有没有大佬告诉我这段代码到底错哪了?程序始终运行不起来

六小鸭 发表于 2020-3-24 16:08:39

#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]
查看完整版本: C语言问题!!!求助!!!