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;
}
展开
 我来答
遗失的迷惘O
2018-11-22 · TA获得超过477个赞
知道小有建树答主
回答量:382
采纳率:77%
帮助的人:99.4万
展开全部
scanf("%s%s%lf%lf%lf",c[i].a,c[i].b,&c[i].one,&c[i].two,&c[i].three);
你这句有问题,比如这个c[i].one,这个相当于一个变量,你可以给它赋值,而&c[i].one是变量的地址,你怎么能修改地址呢。很明显会segmentfault呀
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式