小小的程序却研究不出来为什么(浮点多维数组输入有什么要求?)解决方法

小小的程序却研究不出来为什么(浮点多维数组输入有什么要求?)
TC内核的编译问题:

main()
{
        float   num[2][2]   ;
        int   i   =   0,   j=   0   ;

        scanf( "%f ",   &num[i][j])   ;

        getch()   ;
}

编译没问题
运行后一闪而过
程序运行错误提示:
scanf:floating   point   formats   not   linked
Abnormal   program   termination

这么常用的东西竟然有这说道   感觉挺知道研究


------解决方案--------------------
http://www.khapre.org/blog/2005/07/scanf-floating-point-formats-not.aspx
------解决方案--------------------
就是说Borland公司的编译器(Borland c/c++, Turbo c/c++)不会自动链接浮点运算库除非你用到它(也就是你需要调用一个浮点函数)。

而scanf, printf中对后面参数不进行类型检查,如果你前面又没有调用浮点函数,编译程序时就没有把浮点运算库链接进来,程序运行时在scanf中读入%f就会出错。

那篇文章给了一个解决方案就是在前面定义一个函数,但不去调用它
static void forcefloat(float* p)
{
float f = *p;
forcefloat(&f);
}