VC++ 问题,紧急求救,生死攸关 在线等待

crazyingmouse 2004-07-27 01:53:08
最后的表达式比较长,但我想问题不大吧? 为什么算出来的结果是-1#.IND?
在线等待您的回答,敬请帮助,非常感谢。
==================================
double exp1,u1,u2,R2,C,L,E;
E=100;
R2=10;
C=0.0001;
L=0.001;
exp1=pow((-(-4*C*R2*R2+L)/L/C/C/R2/R2),(1/2));
u1=(double)(-E*exp(1/80000/C/R2)*exp1*C*R2*sin(1/16000*exp1)-E*exp(1/80000/C/R2)*exp1*C*R2*sin(3/80000*exp1)-E*exp1*C*R2*sin(1/10000*exp1)*exp(1/20000/C/R2)+E*exp(1/80000/C/R2)*cos(3/80000*exp1)+E*cos(1/10000*exp1)*exp(1/20000/C/R2)+E*exp1*C*R2*sin(1/80000*exp1)*exp(1/16000/C/R2)-E*cos(7/80000*exp1)*exp(1/16000/C/R2)-E*exp(1/80000/C/R2)*cos(1/16000*exp1)+E*cos(1/80000*exp1)*exp(1/16000/C/R2)+E*exp1*C*R2*sin(7/80000*exp1)*exp(1/16000/C/R2)-E*exp(1/20000/C/R2)+2*E*sin(1/20000*exp1)*exp1*C*R2)/(-2*R2*C*exp1*exp(1/20000/C/R2)*sin(1/10000*exp1)+2*R2*C*exp1*sin(1/20000*exp1)*exp(1/10000/C/R2)+2*R2*C*exp1*sin(1/20000*exp1));
==================================
...全文
208 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhj0532 2004-07-28
  • 打赏
  • 举报
回复
1.0/20000 就不等于0
micty 2004-07-28
  • 打赏
  • 举报
回复
挺牛的~如果我会的话一定答复你,可惜现在我看不懂
dreamy 2004-07-27
  • 打赏
  • 举报
回复
晕倒
guanjinke 2004-07-27
  • 打赏
  • 举报
回复
眼睛都花了.
crazyingmouse 2004-07-27
  • 打赏
  • 举报
回复
1/20000 还真是等于0, 如何解决这个问题呢?
holyeagle 2004-07-27
  • 打赏
  • 举报
回复
程序好像也没那么复杂,因为你的sin的计算结果都为零,所以那几个表达式都为零,cos的计算结果都是1,exp的值都是1,所以整理了一下就成了E的加减问题。最后是0.00/0.00,呵呵
zhuzhufox 2004-07-27
  • 打赏
  • 举报
回复
!!@#%$#
昏倒,口吐白沫!
holyeagle 2004-07-27
  • 打赏
  • 举报
回复
你最后是0.000000/0.0000000的一个计算,所以会有这个结果。
lvks 2004-07-27
  • 打赏
  • 举报
回复
很久没有访问csdn了,不知怎样才能发表新的帖子
lvks 2004-07-27
  • 打赏
  • 举报
回复
请问怎样通过网络访问access数据库
pomelowu 2004-07-27
  • 打赏
  • 举报
回复
漏了一点,sin(0) = 0;
huaboy408 2004-07-27
  • 打赏
  • 举报
回复
强,帮忙顶一下!
pomelowu 2004-07-27
  • 打赏
  • 举报
回复
不是说式子写长了是问题,但是写成这样的确影响可读性。
看看你的分母部分:
(-2*R2*C*exp1*exp(1/20000/C/R2)*sin(1/10000*exp1)
+2*R2*C*exp1*sin(1/20000*exp1)*exp(1/10000/C/R2)
+2*R2*C*exp1*sin(1/20000*exp1));

每个加号两边都是0。1/20000 = 0,然后 0 * exp1 = 0, 然后 0 + 0 + 0 = 0
明了?
martingod 2004-07-27
  • 打赏
  • 举报
回复
建议你分步进行运算~!然后再逐步地检查结果.
whiteclouds 2004-07-27
  • 打赏
  • 举报
回复
你的算式太长了,应该分开.你的问题是正弦或余弦函数的参数超出范围了.VC里的正弦和余弦函数的参数都必须在0到2*PI之间的,小于0或大于2*PI就会出现你说的结果.
pomelowu 2004-07-27
  • 打赏
  • 举报
回复
分母等于0了,你把所有的1改为1.0试试
holyeagle 2004-07-27
  • 打赏
  • 举报
回复
强,程序写成这样也算是惊天地、泣鬼神了,一定要顶一下!
whiteclouds 2004-07-27
  • 打赏
  • 举报
回复
老大,你为什么用这么长的表达式?你的问题是表达式里某个三角函数的参数超出范围了.别忘了正弦,余弦函数的参数是在0和2*PI之间的.如果参数大于2*PI或小于0就会有你说的结果.
shadowWind 2004-07-27
  • 打赏
  • 举报
回复
应该不是表达式太长的问题
而是其中至少有一部分计算的值超出变量的有效数据长度了

你可以分开计算一下,看看哪个出问题了

这种情况最好调整一下你的公式
pomelowu 2004-07-27
  • 打赏
  • 举报
回复
一步一步写吧,看得头都大了,还不方便查问题。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧