在C语言中Floating point error: Domain到底是什么意思?寻求解答,感激不禁!

程序在运行下面函数中发生错误.在HuodeK函数中,计算K〔〕〔〕时,不能运行.出现Floating point error: Domain.
#include<stdio.h>
#include<string.h>
#include<math.h>
float K[10][11],k[10][11],Q[11],D[100],F[9],fangcha[10];
int a[10][10],e,f;
main()
{char z[12];
printf
("please enter the password:\n");
scanf("%s",z);
if(strcmp(z,"zhimakaimen\0")!=0)
printf("sorry,the password is wrong\n");
else
{int i,j;
printf("enter the two number:\n");
scanf("%d,%d",&e,&f);
printf("enter zhengjiaobiao:\n");
for(i=0;i<e;i++)
for(j=0;j<f+1;j++)
scanf("%d",&a[i][j]);
for(i=0;i<e;i++)
{for(j=0;j<f+1;j++)
printf("%3d",a[i][j]);
printf("\n");
}
HuodeK();
QiuQ();
Fenxi();
}
}
HuodeK()
{int i,j,n,m,z=0;
printf("please enter the result of the expriment:\n");
for(i=0;i<e;i++)
scanf("%f",&D[i]);
for(i=0;i<e;i++)
printf("%f",D[i]);
for(j=0;j<f+1;j++)
{for(n=0;n<f;n++)
{for(i=0,m=n+1,K[n][j]=0.0;i<e;i++)
a[i][j]==m?K[n][j]=K[n][j]+D[i]:z++;
}
}
printf("Now,we will print out K.");
for(i=0;i<f;i++)
{printf("\nK%d",i+1);
for(j=0;j<f+1;j++)
printf("%10.4f",K[i][j]);
}
for(j=0;j<f+1;j++)
for(n=0;n<f;n++)
k[n][j]=K[n][j]/f;
printf("Now,we will print out k.");
for(i=0;i<f;i++)
{printf("\nk%d",i+1);
for(j=0;j<f+1;j++)
printf("%10.4f",k[i][j]);
}
}

第1个回答  2008-05-26
这种错误引起原因较多,通常是溢出。
例如,输入格式不对,输入变量漏了 &,数组超界,数据超界,分母(除数)为零。
输入变量为数组元素,例如 scanf("%f",&D[i]); 元素个数太多时也会错,要改成 scanf("%f",temp); D[i]=temp;

你这里的原因不清楚。
我随便试了几组小数组,都没问题。
例如:
2,3
1 2 3 4 5 6 7 8
1 2
scanf("%d,%d",&e,&f); 你输入数据时 是否漏了 "逗号" ? 引起e,f 超界 ?
相似回答