标题:这个程序老出现那个老问题flooting point error.
只看楼主
fujian26
Rank: 1
等 级:新手上路
帖 子:131
专家分:0
注 册:2007-4-3
 问题点数:0 回复次数:4 
这个程序老出现那个老问题flooting point error.

这个程序调试的时候老说变量top1和top2未定义,但是明明定义了的啊,然后我干脆就加上一句 int top1,top2;这句话在前面,就调得通了,但运行菜单2的时候就会出现错误:Flooting point error:Domain 这种错误我以前好象也遇到过,就好象用了double或flot这类型的时候就容易出现这种错误,请问为什么啊,能给个详细的解答么 ?谢谢了
主程序如下:

/* Note:Your choice is C IDE */
#include "stdio.h"
#include "math.h"
#include "string.h"
#include "conio.h"
#include "stdlib.h"
#define y 0.0000001
struct xishu
{int coef[100];
int top1;
}p;
struct zhishu
{int expn[100];
int top2;
}q;

shuru()
{ double a;
int b;
printf("please input the coef and expn\n");
while(1)
{ scanf("%lf%d",&a,&b);
printf("!!!!!!\n");
if(b==-1) break;
p.coef[top1]=a; q.expn[top2]=b;
top1++; top2++;
}
return;
}
double duoxiangshi(double x)
{ int m=1,n=0;
int i;
while(top1!=0)
{ for(i=0;i<q.expn[top2-1];i++)
m*=x;
m*=p.coef[top1-1];
n+=m;
m=1;
top1--; top2--;
}
return n;
}
double jisuan()
{ double x1=1,x2=0,x3[100];
int i=0;
x3[0]=0;
while(fabs(x2-x1)>y||fabs(x2-x1)==y)
{ x1=duoxiangshi(x3[i]);
x2=duoxiangshi(x1);
x3[i+1]=x2-(x2+x1)*(x2+x1)/(x2-2*x1+x3[i]);
i++;
}
return x3[i];
}

main()
{ int nem;

while(1)
{
printf("/*********************************************************/\n");
printf("/**************** 1.shuru ********************************/\n");
printf("/**************** 2.jisuan *******************************/\n");
printf("/**************** 3.dayin ********************************/\n");
printf("/**************** 4.exit *********************************/\n");
printf("your choice is what ?(1-4)\n");
scanf("%d",&nem);
switch(nem)
{ case 1: shuru();
break;
case 2: jisuan();
printf("has finished !!!\n");

break;
case 3: printf("the result is %d\n",jisuan());

break;
case 4: break;
}

if(nem==4) break;

}

}

搜索更多相关主题的帖子: flooting point 
2007-11-14 14:19
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
得分:0 
top1,top2要定义在结构体外面
另外
在VC下编译不报你说的错啊
LZ用什么编译器?

女朋友问我想怎么死~~~
             我说我想"爽死"
2007-11-14 14:49
fujian26
Rank: 1
等 级:新手上路
帖 子:131
专家分:0
注 册:2007-4-3
得分:0 

我用的是Turbo C for Windows 集成实验与学习环境啊,
为什么要定义在里面不行啊


退一步海阔天空.......
2007-11-14 15:10
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
得分:0 
你在外面使用的时候,top1,top2不是成员变量啊
所以提示要重新定义啊
你把结构体中的注释掉,还是可以正常运行~~

女朋友问我想怎么死~~~
             我说我想"爽死"
2007-11-14 16:01
forrestx
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-11-9
得分:0 
top1 和top2是结构体的成员变量

在double duoxiangshi(double x)这个函数里面怎么是直接引用的。
这样也能编译过去吗?
2007-11-14 17:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-185872-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.937434 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved