2D-float数组值扫描

时间:2009-07-25 17:46:50

标签: c arrays floating-point

我使用C语言编写了一个代码如下:

main()
{
    float x[10][10];  int i,j;   clrscr();
    scanf("%d%d",&i,&j);
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%f",&x[i][j]);
 ......
}

当我运行这个程序时,有一个ABNORMAL TERMINATION 像'浮动点转换没有链接'这样的错误 你介意告诉我我错了什么吗?

我的操作系统:Windows XP编译器:TurboC

1 个答案:

答案 0 :(得分:6)

http://c-faq.com/fp/fpnotlinked.html

  

一些小型机器的编译器,包括Turbo C(和Ritchie的原始PDP-11编译器),如果它看起来不需要,就会省略某些浮点支持。特别是,printf和scanf的非浮点版本通过不包括处理%e,%f和%g的代码来节省空间。碰巧Borland用于确定程序是否使用浮点的启发式算法是不够的,并且程序员有时必须向浮点库函数(例如sqrt;任何将执行)插入一个虚拟调用来强制加载浮点支持。 (有关更多信息,请参阅comp.os.msdos.programmer FAQ列表。)   一个部分相关的问题,导致类似的错误消息(可能是“浮点未加载”)显然可能发生在一些MS-DOS编译器下,当链接一个不正确的浮点库变种时。查看编译器手册中各种浮点库的描述。