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日

悬赏问题

  • ¥30 使用php如何制作一个国博门票抢票系统?(相关搜索:手机号|小程序)
  • ¥15 关于#数据库#的问题:每次实验都是系统直接导出数据,但是实验过程前会修改被实验件的结构类型,软件版本(如第一次实验为结构A,A01版本软件,A01版本软件)(相关搜索:数据类型)
  • ¥15 群晖docker无法连接代理服务器
  • ¥20 VBA将EXCEL数据写入JSON,中文不显示
  • ¥15 用S7-200 SIM 2.0,导入程序时出现了这个问题(关键词-子程序)
  • ¥15 pip安装pystan显示No module named 'Cython'的问题
  • ¥15 求一下解题思路,需完整的步骤和代码。
  • ¥15 苹果CMS搭建的视频网站首页打开为什么会自动跳转到色情页面?
  • ¥15 php,mysql的问题
  • ¥50 dac adc的检定规程