今天一MM问我问题(C中关于浮点数输入),弄得我很无颜面,盼高手指教!!
偶经过几十分钟的调试,最后确定问题如下:
struct a
{
float b;
};
void main()
{
int i;
struct a aaa[3];
for (i=0;i<3;i++)
{
scanf("%f",&aaa[i].b);
printf("\n%f\n",aaa[i].b);
}
}
上面这段代码在VC6.0,BCB5.0中编译运行通过,在Tc2.0,Tc3.0,Borland C++中编译没有错误,但运行时总报告下面的错误:
scanf : floating point formats not linked
Abnormal program termination
如果没有循环,一次一次的输入,可以正确运行。
如果没有结构体,aaa只是一个浮点数组,可以正确运行。
如果输入改成整数,可以正确运行。
所以上面的错误出现的条件有3个(必须):
1.循环(while没有试过)
2.结构体
3.浮点数输入(在循环里面且是关于结构体中元素的输入)
请大家帮帮忙,找出不能正确运行的原因。非常感谢!!
PS:我在C++中用cin输入可以正确运行。