dragonliu01
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:19 回覆:16 積分:7 註冊:2004-12-21
發送簡訊給我
|
題目是要印出多項式,並算其値...
修改過原來的程式碼了...不過算出來總少了最後指數為0的項,請問我哪裡寫錯了??
#include
#include
using namespace std; class Poltnomial
{
private :
double cof[50],x;//cof為存係數之陣列
int TermNum,i;//項數
public :
Poltnomial(){for(i=0;i<50;i )cof[i]=0;} //初始化cof
void setTerm(int TermNum);
void eval(double x);
void showPolynomial();
}; void Poltnomial::setTerm(int Num)
{
int elm1;
TermNum=Num;
for(i=0 ;i>elm1;
cof[i]=elm1;
}
} void Poltnomial::eval(double inputnum)
{
double ans=0;
x=inputnum;
for(i=TermNum;i>=0;i--)
ans=cof[TermNum-i]*pow(x,(double)i) ans;
cout<<'='<=0;j--)//印出多項式 ,並降冪排列
{ if (cof[TermNum-j]>0)
cout<<' '< 發表人 - dragonliu01 於 2005/05/18 00:32:32
|
richtop
資深會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:122 回覆:646 積分:468 註冊:2003-06-10
發送簡訊給我
|
dragonliu01 您好: showPolynomial()建議修改如下,試試看!
void showPolynomial()
{
for(int j=TermNum;j>=0;j--)
{ if ( cof[j]>0 )
cout<<" "< RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====#####
|
dragonliu01
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:19 回覆:16 積分:7 註冊:2004-12-21
發送簡訊給我
|
引言:
dragonliu01 您好: showPolynomial()建議修改如下,試試看!
void showPolynomial()
{
for(int j=TermNum;j>=0;j--)
{ if ( cof[j]>0 )
cout<<" "< RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====#####
回richTop大大,
我的問題應該是在eval的funtion上,不過還是感謝您的回答... 發表人 - dragonliu01 於 2005/05/18 01:57:42
|
blk5743
高階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:34 回覆:371 積分:236 註冊:2003-11-17
發送簡訊給我
|
dragonliu01你好 以下的判斷有問題
void Poltnomial::showPolynomial()
{
for(int j=TermNum;j>=0;j--)//印出多項式 ,並降冪排列
{ if (cof[TermNum-j]>0)
cout<<' '<
你的範例為輸入五個數字
但是卻要輸出六項
而你的第6巷的值為0(被你初始化為0)
但你的的判斷是卻只有判斷大於0或小於零0
沒有考慮到等於0的狀況(我知道0就不用顯示了吧)
所以你的0次方的值為0,所以不顯示
|
dragonliu01
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:19 回覆:16 積分:7 註冊:2004-12-21
發送簡訊給我
|
再做了一點修正....
#include
#include
using namespace std; class Poltnomial
{
private :
double cof[50],x;//cof為存係數之陣列
int TermNum,i;//項數
public :
Poltnomial(){for(i=0;i<50;i )cof[i]=0;} //初始化cof
void setTerm(int TermNum);
void eval(double x);
void showPolynomial();
}; void Poltnomial::setTerm(int Num)
{
int elm1;
TermNum=Num;
for(i=0 ;i>elm1;
cof[i]=elm1;
}
} void Poltnomial::eval(double inputnum)
{
double ans=0;
x=inputnum;
for(i=TermNum-1;i>=0;i--)
ans=cof[TermNum-i-1]*pow(x,(double)i) ans; //算出多項式的答案
cout<<'='<=0;j--)//印出多項式
{ if (cof[TermNum-j]>0)
cout<<' '< 不過還是老問題,前面blk大大的回答我已經修正,變成是輸出5項,不過印出方面還是缺少0次方的項(0次方的係數是cof[4],應該會有値才對呀...) 請各位幫我這初學者看一下囉...謝謝!! 發表人 - dragonliu01 於 2005/05/18 12:13:04
|
blk5743
高階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:34 回覆:371 積分:236 註冊:2003-11-17
發送簡訊給我
|
dragonliu01你好 請改成
void Poltnomial::showPolynomial()
{
for(int j=0;j0)
cout<<' '<
|