C语言 为什么不能用scanf向结构体中赋初值
有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平...
有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
#include<stdio.h>
int main()
{
struct student{
char a[7];
char b[7];
float one;
float two;
float three;
float aver;
};
struct student c[10];
int i,max,t;
for(i=0;i<10;i++)
scanf("%s%s%lf%lf%lf",c[i].a,c[i].b,&c[i].one,&c[i].two,&c[i].three);
for(i=0;i<10;i++)
c[i].aver=(c[i].one+c[i].two+c[i].three)/3;
for(i=0;i<10;i++)
{
if(c[i].aver<c[i+1].aver)
{
max=c[i+1].aver;
t=i+1;
}
}
printf("%s%s%lf%lf%lf",c[t].a,c[t].b,c[t].one,c[t].two,c[t].three);
return 0;
} 展开
#include<stdio.h>
int main()
{
struct student{
char a[7];
char b[7];
float one;
float two;
float three;
float aver;
};
struct student c[10];
int i,max,t;
for(i=0;i<10;i++)
scanf("%s%s%lf%lf%lf",c[i].a,c[i].b,&c[i].one,&c[i].two,&c[i].three);
for(i=0;i<10;i++)
c[i].aver=(c[i].one+c[i].two+c[i].three)/3;
for(i=0;i<10;i++)
{
if(c[i].aver<c[i+1].aver)
{
max=c[i+1].aver;
t=i+1;
}
}
printf("%s%s%lf%lf%lf",c[t].a,c[t].b,c[t].one,c[t].two,c[t].three);
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询