ITZY_Official 2016-10-09 11:26 采纳率: 0%
浏览 1131
已结题

C++程序为什么一直报错 如何解决这个问题

#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;
}

  • 写回答

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