#include
#include
using namespace std;
const int defaultsize=30;
template
class Stack {
private:
void operator =(const Stack&) {}
Stack(const Stack&) {}
public:
Stack() {}
virtual ~Stack() {}
virtual void clear() = 0;
virtual void push(const E& it) = 0;
virtual E pop() = 0;
virtual const E& topValue() = 0;
virtual int length() = 0;
};
template
class AStack: public Stack {
private:
int maxSize;
int top;
E listArray;
public:
AStack(int size=defaultsize){
maxSize = size;
top = 0;
listArray = new E [size];
}
~AStack(){
delete [] listArray;
}
void clear(){
top = 0;
}
void push(const E& it) {
assert(top!= maxSize);
listArray[top] = it;
top++;
}
E pop(){
assert(top!= 0);
return listArray[--top];
}
int length(){
return top;
}
};
int main(){
int ten=0,x,y,p,fir;
cout<<" 请输入初始进制:";
cin>>x;
cout<<" 请输入初始数值:";
cin>>fir;
cout<<" 请输入目标进制:";
cin>>y;
AStack sta1();
AStack sta2();
while(fir>0){
p=fir%10;
fir/=10;
sta1.push(p);
}
while(sta1.top!=0){
ten+=sta1.pop();
ten=x;
}
ten/=x;
while(ten>0){
p=ten%y;
ten/=y;
sta2.push(p);
}
while(sta2.top!=0){
cout<<sta2.pop();
}
cout<<endl;
return 0;
}
C++程序为什么一直报错 如何解决这个问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2016-10-09 14:24关注
#include<iostream> #include<cassert> using namespace std; const int defaultsize=30; template <typename E> class Stack { private: void operator =(const Stack&) {} Stack(const Stack&) {} public: Stack() {} virtual ~Stack() {} virtual void clear() = 0; virtual void push(const E& it) = 0; virtual E pop() = 0; virtual const E& topValue() = 0; virtual int length() = 0; }; template <typename E> class AStack: public Stack<E> { private: int maxSize; E *listArray; public: int top; AStack(int size=defaultsize){ maxSize = size; top = 0; listArray = new E [size]; } ~AStack(){ delete [] listArray; } void clear(){ top = 0; } void push(const E& it) { assert(top!= maxSize); listArray[top] = it; top++; } E pop(){ assert(top!= 0); return listArray[--top]; } int length(){ return top; } const E& topValue() { assert(top!= 0); return listArray[top]; } }; int main(){ int ten=0,x,y,p,fir; cout<<" 请输入初始进制:"; cin>>x; cout<<" 请输入初始数值:"; cin>>fir; cout<<" 请输入目标进制:"; cin>>y; AStack<int> sta1; AStack<int> sta2; while(fir>0){ p=fir%10; fir/=10; sta1.push(p); } while(sta1.top!=0){ ten+=sta1.pop(); ten*=x; } ten/=x; while(ten>0){ p=ten%y; ten/=y; sta2.push(p); } while(sta2.top!=0){ cout<<sta2.pop(); } cout<<endl; return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
- ¥30 STM32 INMP441无法读取数据
- ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
- ¥15 用visualstudio2022创建vue项目后无法启动
- ¥15 x趋于0时tanx-sinx极限可以拆开算吗
- ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error