以下是引用袋鼠在2005-7-27 16:20:00的发言:
我觉得楼上的说的不对,这个应该是使用scanf()函数时连接浮点库的问题,版主以前也发过帖子说过:
" 问题:程序编译通过,但运行错误提示如下:
scanf : floating point formats not linked
Abnormal program termination
这实际上与scanf()函数无关,是编译器的问题。
原因很明确:没有链接浮点库。早期系统内存资源紧张,多维浮点数组占用内存量大(一维浮点数组就没有此问题),因此TC在编译时尽量不加入无关的部分,在没发现需要浮点转换程序时,就不在可执行程序中安装这个部分。而有时TC又不能正确识别实际上确实需要做浮点转换,因此就会出现上面错误。
解决的方法:告诉TC需要做浮点数的输入转换 "
对于这个程序,由于出现了上面的问题,运行时系统提示:
scanf : floating point formats not linked
Abnormal program termination 在此之后系统就直接结束运行,所以屏幕一闪而过,验证:
#include "stdio.h"
#include "math.h"
main()
{ float a[3][3],sum=0;int i,j;
sleep(7); /* 程序在此停留7秒钟,以判断运行位置*/
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("%f",sum);
getch();}
然后再运行一次就可以看到上次运行时系统提示的
scanf : floating point formats not linked
Abnormal program termination
解决:在sleep( )语句之前增加如下内容:
float b;
printf("Input a float number :\n");
scanf("%f",&b);
用来告诉TC需要做浮点数的输入转换,问题就可以解决了
4楼的朋友,我可不可以问你一下,这个加入float b;把b把入程序中有什么用啊?我百思不得其解..帮个忙