猿问

我的想法是一旦输入回车就跳出多项式的输入,但是没效果!为什么

#include<iostream>
//#include<string>
using namespace std;

class polynomial
{
public:
float coef;
int exp;
polynomial *next;
//void count(polynomial *p,int x);
};
int main()
{
void count(polynomial *p,int x);
// string str;
polynomial *p;
p=new polynomial;
int e;
float c;
polynomial *q,*r;
q=p;
r=p;
// cout<<p;
// cout<<q;
// cout<<r;
while(1)
{
cin>>c;
if(c=='\n')
break;

// if(c==0)
// continue;
cin>>e;
if(e=='\n')
break;
q->coef=c;
q->exp=e;
r->next=q;
r=q;
}
// cout<<q;
r->next=p;
int x;
cin>>x;
count(p,x);
return 0;
}
void count(polynomial *p,int x)
{
float c;
int e;
int f=1;
float num=0;
polynomial *k,*m;
k=p;
m=p;
while(k!=m)
{
c=k->coef;
e=k->exp;
p=k->next;
k=p;
if(e>=1)
{
for(e;e>0;e--)
{
f=x*f;
num+=c*f;
}
f=1;
}
if(e==0)
num+=c;
if(e<0)
{
for(e;e<0;e++)
{
f=f/x;
num+=c*f;
}
f=1;
}
}
cout<<num;
}
这是我的代码有一些语句是调试的时候注释掉了,无视就好。
问题可能有不少吧~菜鸟一只,目前发现的主要问题就是main函数中构建链表的循环不跳出,我的想法是一旦输入回车就跳出多项式的输入。不过不能实现。
也许还有一些其他的问题我还没发觉,想了好几个小时了,还是不能解决,求大神帮助下。谢谢

交互式爱情
浏览 163回答 1
1回答

慕妹3146593

#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;}
随时随地看视频慕课网APP

相关分类

CSS3
Java
我要回答