您的位置:首页 > 其它

第三章习题5.3

2017-10-10 18:30 239 查看
题目:设计算法,把十进制整数转换为二至九进制之间的任一进制输出。

#include <iostream>
using namespace std;
template <class T>
class node
{
public:
T data;
node<T>*link;
node(const T&el,node<T>*ptr=NULL)
{
data=el;
link=ptr;
}
};
template <class T>
class pstack
{
private:
node<T>*top;
int size;
public:
pstack(T s=0)
{
top=NULL;
size=0;
}
~pstack()
{
clear();
}
void clear()
{
while(top!=NULL)
{
node<T>*temp=top;
top=top->link;
delete temp;
}
size=0;
}
void push(const T item)
{
node<T>*tmp=new node<T>(item,top);
top=tmp;
size++;
}
T pop()
{
T temp;
if(size==0)
{
cout<<"栈为空,不能进行删除!"<<endl;
exit(0);
}
else
{
temp=top->data;
node<T>*tmp=top;
top=top->link;
delete tmp;
size--;
}
return temp;
}
T Top()
{
T temp;
if(size==0)
{
cout<<"栈为空,不能进行删除!"<<endl;
exit(0);
}
else
{
temp=top->data;
}
return temp;
}
bool isempty()
{
if(size==0)
return true;
else
return false;
}
};
int main()
{
int a,b,i=1,d;
pstack<int>c;
while(i!=2)
{
cout<<"输入要转换的十进制数:";
cin>>a;
cout<<"输入转换为的进制:";
cin>>b;
if(b>=2&&b<=9)
{
while(a)
{
d=a%b;
c.push(d);
a=a/b;
}
while(!c.isempty())
{
cout<<c.pop();
}
cout<<endl;
}
else
{
cout<<"输入错误!!"<<endl;
}
cout<<"1.继续\n";
cout<<"2.退出\n";
cout<<"请选择";
cin>>i;
system("cls");
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: