weixin_43306709 2022-03-06 23:12 采纳率: 77.3%
浏览 14
已结题

想用栈实现进制转换,但不知道那里错了

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.h
#ifndef STACK_H
#define STACK_H
template <class T>
class Stack
{
private:
    T* element;
    int maxSize;
    int top;
public:
    Stack(int w);  
    bool isempty();     
    bool isfull();
    bool push(const T& x);
    bool pop(T x);
    ~Stack(){delete[] element;}
};

template<class T>
Stack<T>::Stack(int w)
{
    top = -1;
    maxSize = w;
    element = new T(w);
}

template <class T>
bool Stack<T>::isempty()
{
    return top == -1;
}

template <class T>
bool Stack<T>::isfull()
{
    return top+1 == maxSize;
}

template <class T>
bool Stack<T>::push(const T& x)
{
    if(isfull())
        return false;

    else
    {
        element[top + 1] = x;
        top++;
        return true;
    }
}

template <class T>
bool Stack<T>::pop(T x)
{
    if(isempty())
        return false;
    else
    {
        x = element[top];
        top--;
        return true;
    }
}
#endif
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.cpp
#include <iostream>
#include "stack.h"

using namespace std;

void conversion(int n,int base);

int main()
{
    int n,base;
    cout << "请输入想转换的数字和进制:" << endl;
    cin >> n >> base;
    conversion(n,base);
    cout << endl;
    return 0;
}
void conversion(int n,int base)
{
    Stack<int> s(100);
    int y;
    y = n;
    int x;
    while(y)
    {
        s.push(y%base);
        y = y / base;
    }

    while(!s.isempty())
    {

        s.pop(x);
        cout << x;
    }
}
运行结果及报错内容

请输入想转换的数字和进制:
100 2
32766327663276632766327663276632766

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • orange4reg 2022-03-06 23:45
    关注

    pop(T &x)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月14日
  • 已采纳回答 3月6日
  • 创建了问题 3月6日

悬赏问题

  • ¥15 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了