高手看看我这里哪里出错了,运行结果总是错。

[复制链接]
查看11 | 回复2 | 2011-5-18 11:23:15 | 显示全部楼层 |阅读模式
#includemath.h
#includestdio.h
main()
{doubleR,C,D,H,a,b;
doubley,x;
scanf(\"R=%fC=%fD=%f\",
x=tanh((double)D);
y=tanh(double(2*D));
a=R-(C*x);
b=sqrt((R*R)-(2*R*C*x));
C=1y;
H=(a-b)/C;
printf(\"%f\",H);}
回复

使用道具 举报

千问 | 2011-5-18 11:23:15 | 显示全部楼层
//注意输入的数要保证b=sqrt((R*R)-(2*R*C*x));能正常运行,即不能负数开方。
#includemath.h
#includestdio.h
voidmain()
{doubleR,C,D,H,a,b;
doubley,x;
scanf(\"%lf%lf%lf\",//double需要%lf格式!
x=tanh(D);
y=tanh(2*D);
a=R-(C*x);
b=sqrt((R*R)-(2*R*C*x));
C=1y;
H=(a-b)/C;
printf(\"%lf\",H);}









<h4class=\"ask\">追问


谢谢回答,但是我假设一些数据输入,结果还是溢出,这是怎么回事?
比如说我的假设的数据10130
回复

使用道具 举报

千问 | 2011-5-18 11:23:15 | 显示全部楼层
就是执行到b=sqrt((R*R)-(2*R*C*x));时,出现负数开方。如果你也不了解这个程序的功能又要运行的话,将上面这个语句改为:
b=sqrt(fabs((R*R)-(2*R*C*x)));


运行结果如下:
10130
0.027864
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行