系统粉 > 电脑问答 > 其他问答

已解决为什么不显示结果?

提问者:神迷数字  |  浏览次  |  提问时间:2017-01-08  |  回答数量:4

为什么不显示结果? #include<iostream>#include<math.h>using namespace std;int main(){int a,b;double m,j, s=0;double f(double &x);double h(double &m1,double &s1,int &a1,int &b1);cin>>a>>b;m=a;j=h(m,s,a,b);cout<<j<<endl;return 0;}double f(double x){double c;c=x;return(c);}double h(double &m1,double &s1,int &a1,int &b1){for(int n=1;fabs((a1-b1)/n)!=1e-6;n++)while(m1<b1){m1=m1+(a1-b1)/n;s1=s1+f(m1)*m1;}return (s1);}这是一个求a与b区间x的积分的函数,程序在运行过程中没错误

已有4条答案
护桓使者

护桓使者

回答数:126  |  被采纳数:107

调试发现m1越来越小,因此while无限循环
(1)
2017-01-08 15:06:56
赞 12
悠扬之美

悠扬之美

回答数:192  |  被采纳数:52

原来如此,哦,谢谢版主
2017-01-08 16:21:22
赞 19
笑韵意微

笑韵意微

回答数:167  |  被采纳数:56

将错误的程序段改成for(i=1;i<=n;i++)
{m1=m1+(a1-b1)/n;
s1=s1+f(m1)*m1;
}
2017-01-08 20:47:39
赞 16
爷无视尼玛

爷无视尼玛

回答数:28  |  被采纳数:89

我觉得用m=m+(b1-a1)/n;,否则会越算越小
2017-01-08 23:51:08
赞 2
相关问答
最新其他问答
解决方法