1 回答

TA贡献1820条经验 获得超9个赞
#include<iostream>
using namespace std;
class polynomial
{
public:
float coef;
int exp;
polynomial *next;
//void count(polynomial *p,int x);
};
int main()
{
float count(polynomial *p,int x);
polynomial *p;
p = new polynomial;
int e;
float c;
polynomial *q, *r;
q=p;
r=p;
cout <<"开始输入。"<<endl;
while(true)
{
cout<<"常数:";
cin>>c;
cout<<"指数:";
cin>>e;
q->coef = c;
q->exp = e;
r->next = q;
r = q;
cout << "是否继续添加?(Y/N)" << endl;
char ch;
cin >> ch;
if ('Y' != toupper(ch))
{
cout<<"多项式输入完毕!"<<endl;
break;
}
}
r->next = p;
int x;
cout << "自变量:";
cin>>x;
float res = count(p,x);
cout << "结果:" << res << endl;
system("pause");
return 0;
}
float count(polynomial *p,int x)
{
float c;
int e;
int f = 1;
float num=0;
polynomial *k,*m;
k = p;
m = p;
do
{
c=k->coef;
e=k->exp;
k=k->next;
if(e>=1)
{
for(;e>0;e--)
{
f=x*f;
}
num+=c*f;
f=1;
}
else if(e==0)
num+=c;
else
{
for(;e<0;e++)
{
f=f/x;
}
num+=c*f;
f=1;
}
}while(k != m);
return num;
}
添加回答
举报