| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 635 人关注过本帖
标题:[求助]!如何使这个程序正确的输出结果?
取消只看楼主 加入收藏
不安分子
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-1
收藏
 问题点数:0 回复次数:1 
[求助]!如何使这个程序正确的输出结果?
#include<iostream>
using namespace std;

class mploy
{
public:
mploy *next;
mploy *creat(char);
void addploy(mploy *,mploy *);
void print(mploy *);
private:
int coef;
int expn;
};
int n;
mploy *mploy::creat(char ch)
{
mploy *head,*p1,*p2;
n=0;
p1=p2=new mploy;
cout<<"Input多项式的系数和指数"<<endl;
cin>>p1->coef>>p1->expn;
head=NULL;
while(p1->coef!=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=new mploy;
cin>>p1->coef>>p1->expn;
}
p2->next=NULL;
return head;
}

void mploy::addploy(mploy *a,mploy *b)
{
mploy *ha,*hb,*p,*q;
ha=a;
hb=b;
int x;
p=a->next;
q=b->next;
while(p!=NULL&&q!=NULL)
{
if(p->expn<q->expn)
{
ha=p;
p=p->next;
}
else if(p->expn==q->expn)
{
x=p->coef+q->coef;
if(x!=0)
{
p->coef=x;
ha=p;
}
else
{
ha->next=p->next;
}
hb->next=q->next;
q=hb->next;
p=ha->next;
}
else
{
hb=q->next;
q->next=p;
ha->next=q;ha=q;q=hb;
}
}
if (q!=NULL)
ha->next=q;
}

void mploy::print(mploy *h)
{
mploy *t;
t=h;
if(h!=NULL)
if(t->coef!=0)
{
if(t->expn!=0)
cout<<t->coef<<"x^"<<t->expn;
else
cout<<t->coef;
}
while(t!=NULL)
{
if(t->coef>0)
cout<<"+";
cout<<t->coef<<"x^"<<t->expn;
t=t->next;
}
cout<<endl;
}


void main()
{
mploy *a,*b;
mploy c;
a=c.creat('A');
cout<<"A=";
c.print(a);
b=c.creat('B');
cout<<"B=";
c.print(b);
c.addploy(a,b);
cout<<"M=";
c.print(a);
}

运行时是“
Input多项式的系数和指数
1 1 2 2 3 3 0 0
A=1x^1+1x^1+2x^2+3x^3
Input多项式的系数和指数
2 1 3 2 4 3 0 0
B=2x^1+2x^1+3x^2+4x^3
M=1x^1+1x^1+5x^2+7x^3
后面就能正确输出,前面就不行,不知道为什么要重复输出一个项,
请帮我看看 谢谢了

搜索更多相关主题的帖子: 结果 输出 
2006-06-02 09:42
不安分子
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-1
收藏
得分:0 
我觉得print函数没错,
你可以说说他的pre和post吗?什么意思???
2006-06-04 00:45
快速回复:[求助]!如何使这个程序正确的输出结果?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028850 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved