C语言中struct结构体含有很多类型数据时如何一个scanf输入所有类型的数据

2025-03-20 22:56:26
推荐回答(2个)
回答(1):

for (i=0;i<10;i++)
scanf("%d %c %f",&sch[i].num,&sch[i].name,&sch[i].score ); 就可以了。
float score,float 型输入格式 是 %f 不是 %lf。
&sch[1].name 里的 1 改用 i.
注意,你的 name 只允许 1个字符。若多个字符 就会出错。
如果 改为:
struct student {
int num;
char name[20]; // 用字符串,而不是单个字符
float score;
} sch[10];
输入格式 name 用 %s, 参数 sch[i].name,没有 &号:
for (i=0;i<10;i++)
scanf("%d %s %f",&sch[i].num, sch[i].name,&sch[i].score );

回答(2):

&sch[1].name //写成1了,应该是i