weixin_43306709 2022-03-06 15: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 15:45
    关注

    pop(T &x)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    weixin_43306709 2022-03-06 15:56

    大哥能大致说一下区别吗,一个手机复制,一个是参数本身这我知道,但在这个问题里面有啥区别啊

    回复
    weixin_43306709 2022-03-06 15:57

    难道如果是复制的话,他还在栈里吗

    回复
    orange4reg 回复 weixin_43306709 2022-03-06 16:01

    不是在不在栈里,而是任何东西都是传值。

    回复
    展开全部4条评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 3月13日
  • 已采纳回答 3月6日
  • 创建了问题 3月6日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部