係統粉 > 電腦問答 > 其他問答

已解決為什麼不顯示結果?

提問者:神迷數字  |  瀏覽次  |  提問時間: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
相關問答
最新其他問答
解決方法