关于scanf中用%S输入字符串的问题!
#include<stdio.h>struct Student
{
int num;
char name[5];
char sex;
char adress[50];
float grade;
};
int main()
{
struct Student fun(struct Student,struct Student);
struct Student stu[2];
struct Student x;
int i;
for(i=0;i<2;i++)
{
//scanf("%d,%s,%c,%s,%f",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].adress,&stu[i].grade); 以此顺序输出grade会被adress覆盖掉
scanf("%f,%d,%s,%c,%s",&stu[i].grade,&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].adress);
//我只能以这个顺序输出才能保证,adress中的数据不把grade覆盖,如果想按照结构体正常顺序输出应该如何处理????
}
puts("The information of Students are :");
for(i=0;i<2;i++)
{
printf("%d %s %c %s %.1f",stu[i].num,stu[i].name,stu[i].sex,stu[i].adress,stu[i].grade);
putchar('\n');
}
x=fun(stu[0],stu[1]);
puts("The Winner is :");
printf("%d %s %c %s %.1f",x.num,x.name,x.sex,x.adress,x.grade);
putchar('\n');
return 0;
}
struct Student fun(struct Student a,struct Student b)
{
if(a.grade>b.grade)
return a;
else
return b;
}
// 如果想按照结构体正常顺序输出应该如何处理????