c程序只能运行一次,在线等!

来源:百度知道 编辑:UC知道 时间:2024/06/02 08:11:43
我有一个程序,是个很弱的程序,其输入数值第一次能输出结果,第二次直接显示floating point error:domain,请各位大虾帮我看看吧。如果调试出程序另加100分
http://hi.baidu.com/smilngsky/blog/item/cf47cf3c9c7f14c09e3d6263.html程序太不下了,放我空间了
我用的编译器是tc,提醒一下,如果你用c++的编译器,会错的很惨,会提示很多错误,程序中用的都是double型的数据,我想不会是越界或者超出定义域了

其实你可以用VC6.0来调试,相当容易就能发现你那个i没有赋初值,在程序运行时,程序会自动给它一个值,这时就容易造成越界了。

floating point error:domain是浮点错误
domain是领域的意思,这个就是你的变量溢出了
所谓溢出就是你的数超出机器表示的范围
贴代码看看

程序160行
jin(float a[3][3])

{float f[20];

int i;

f[i]=a[1][0]; 这个i没有初值

i++;

return(i);

}

是不是超出定义域了。。

程序贴出来啊......不然怎么搞???

不知道你这程序干啥的?错在哪里?

你给的例子,输入“4,9”?
这样的输入是错的,不能有逗号的啊。

#include <stdio.h>

int jin(float a[3][3])
{
float f[20];
int i;

f[i]=a[1][0];
i++;
return(i);
}

void bian3(float a[3][3],int t)
{
int i,b[3][3]; float f[20] ;
b[0][0]=(int)a[0][0];
b[0][0]=b[0][0]^4;
a[0][1]=(float)b[0][1];
for(i=0;i<t;i++)
a[2][0]=a[2][0]*1000;
}
void bian2(float a[3][3],int t)
{
int i,b[3][3]; float f[20] ;
b[0][1]=(int)a[0][1];
b[0][1]=b[0][1]^3;