当前位置: 代码迷 >> C语言 >> 这个错误要怎么解决
  详细解决方案

这个错误要怎么解决

热度:457   发布时间:2006-08-08 22:40:30.0
这个错误要怎么解决


“ 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]);
}
}
就没有刚才那种错误! 这是为什么?


----------------解决方案--------------------------------------------------------

最起码有地址越界了.


----------------解决方案--------------------------------------------------------
两个程序都有问题.

----------------解决方案--------------------------------------------------------
以下是引用xixigzcn在2006-8-8 23:01:35的发言:

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]);
}
}
就没有刚才那种错误! 这是为什么?


----------------解决方案--------------------------------------------------------

以下是引用nuciewth在2006-8-8 23:07:24的发言:

最起码有地址越界了.

这什么意思?
找不到问题啊
请帮帮


----------------解决方案--------------------------------------------------------
你定义的是STUDENT stu[3];当然允许正确访问stu[0]----> stu[2]了
你从1开始访问,却要访问stu[3],这不就越界了.

----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2006-8-8 23:31:23的发言:
你定义的是STUDENT stu[3];当然允许正确访问stu[0]----> stu[2]了
你从1开始访问,却要访问stu[3],这不就越界了.

我貌似没有访问stu[3]啊


----------------解决方案--------------------------------------------------------
以下是引用xixigzcn在2006-8-8 23:01:35的发言:

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]);
}
}
就没有刚才那种错误! 这是为什么?

看清楚你的循环结束条件


----------------解决方案--------------------------------------------------------
  相关解决方案