C程序运行后显示Floating Point error:Domain是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:10:12
#include"stdio.h"
#include"conio.h"
#define N 4
struct jcb
{ char name[4];
int length;
int printer;
int tape;
int runtime;
int waittime;
};
struct jcb jcb[N],p;
long memory=6000,tape=8,printer=4;
hrrf()
{int x,y;float a[N],t;
printf("\n****The former****\n");
for(x=0;x<N;x++)
{a[x]=(float)jcb[x].waittime/jcb[x].runtime;
printf("\r%f\n",a[x]);
}

for(y=1;y<=N-1;y++)
for(x=0;x<=N-1-y;x++)
if(a[x]>a[x+1])
{t=a[x];a[x]=a[x+1];a[x+1]=t;}
printf("\n****The latter****\n");
for(x=0;x<N;x++)
printf("\r%f\n",a[x]);

for(y=1;y<=N-1;y++)
for(x=0;x<=N-1-y;x++)
if((float)jcb[x].waittime/jcb[x].runtime>(float)jcb[x+1].waittime/jcb[x+1].runtime)
{p=jcb[x];jcb[x]=jcb[x+1];jcb[x+1]=p;}

主要问题是在main()外面已经定义了一个jcb结构体数组,在main()里又定义了一个jcb结构体数组,并且赋值。程序只识别外部jcb[],但这个结构体是空的,所以会产生错误。
稍微改动一下就可以了。
#include"stdio.h"
#include"conio.h"
#define N 4
struct jcb
{ char name[4];
int length;
int printer;
int tape;
int runtime;
int waittime;
};
struct jcb jcb[N]={{"A",5625,2,5,80,25},{"B",265,3,4,100,50},{"C",512,4,4,500,120},{"D",3973,4,2,875,30}},p;
long memory=6000,tape=8,printer=4;
void hrrf()
{ int x,y;
float a[N],t;
printf("\n****The former****\n");
for(x=0;x<N;x++)
{ a[x]=(float)jcb[x].waittime/jcb[x].runtime;
printf("\r%f\n",a[x]);
}
for(y=1;y<=N-1;y++)
for(x=0;x<=N-1-y;x++)
if(a[x]>a[x+1])
{ t=a[x];a[x]=a[x+1];
a[x+1]=t;
}
printf("\n****The latter****\n");