“ scanf :floating point formats not linked Abnormal program teqmination. ”
是什么错误啊?
这个错误要怎么解决
请帮帮忙~~~~~~~~~
----------------解决方案--------------------------------------------------------
请把程序发上来,我看不懂这些
----------------解决方案--------------------------------------------------------
typedef struct
{ char name[20];
float score[3];
}STUDENT;
main()
{ STUDENT stu[3];
int i;
for(i=1;i<=3;i++)
{ scanf("%s",stu[i].name);
scanf("%f %f %f",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
printf("%s %.2f %.2f %.2f",stu.name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
}
――――――――――――――――――――――――――――――――――――――――――――――
我改写成:
typedef struct
{ char name[20];
float score[3];
}STUDENT;
main()
{ STUDENT stu
scanf("%s",stu.name);
scanf("%f %f %f",&stu.score[0],&stu.score[1],&stu.score[2]);
printf("%s %.2f %.2f %.2f",stu.name,stu.score[0],stu.score[1],stu.score[2]);
}
}
就没有刚才那种错误! 这是为什么?
----------------解决方案--------------------------------------------------------
最起码有地址越界了.
----------------解决方案--------------------------------------------------------
两个程序都有问题.
----------------解决方案--------------------------------------------------------
typedef struct
{ char name[20];
float score[3];
}STUDENT;
main()
{ STUDENT stu[3];
int i;
for(i=0;i<3;i++)
{ scanf("%s",stu[i].name);
scanf("%f %f %f",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
printf("%s %.2f %.2f %.2f",stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
}
――――――――――――――――――――――――――――――――――――――――――――――
我改写成:
typedef struct
{ char name[20];
float score[3];
}STUDENT;
main()
{ STUDENT stu
scanf("%s",stu.name);
scanf("%f %f %f",&stu.score[0],&stu.score[1],&stu.score[2]);
printf("%s %.2f %.2f %.2f",stu.name,stu.score[0],stu.score[1],stu.score[2]);
}
}
就没有刚才那种错误! 这是为什么?
----------------解决方案--------------------------------------------------------
最起码有地址越界了.
这什么意思?
找不到问题啊
请帮帮
----------------解决方案--------------------------------------------------------
你定义的是STUDENT stu[3];当然允许正确访问stu[0]----> stu[2]了
你从1开始访问,却要访问stu[3],这不就越界了.
----------------解决方案--------------------------------------------------------
你定义的是STUDENT stu[3];当然允许正确访问stu[0]----> stu[2]了
你从1开始访问,却要访问stu[3],这不就越界了.
我貌似没有访问stu[3]啊
----------------解决方案--------------------------------------------------------
typedef struct
{ char name[20];
float score[3];
}STUDENT;
main()
{ STUDENT stu[3];
int i;
for(i=1;i<=3;i++)
{ scanf("%s",stu[i].name);
scanf("%f %f %f",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
printf("%s %.2f %.2f %.2f",stu.name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
}
――――――――――――――――――――――――――――――――――――――――――――――
我改写成:
typedef struct
{ char name[20];
float score[3];
}STUDENT;
main()
{ STUDENT stu
scanf("%s",stu.name);
scanf("%f %f %f",&stu.score[0],&stu.score[1],&stu.score[2]);
printf("%s %.2f %.2f %.2f",stu.name,stu.score[0],stu.score[1],stu.score[2]);
}
}
就没有刚才那种错误! 这是为什么?
看清楚你的循环结束条件
----------------解决方案--------------------------------------------------------