| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 504 人关注过本帖
标题:求助请高手帮忙 (问题已解决)
只看楼主 加入收藏
yzdying
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-3-27
收藏
 问题点数:0 回复次数:3 
求助请高手帮忙 (问题已解决)
#include <iostream>
using namespace std;

#define SeqSize 100;

typedef int DataType;
typedef struct
{
    DataType data[100];
    int top;
}SeqStack;
typedef SeqStack * SeqStackConst;

//置空栈;
void InitStack(SeqStackConst s)
{
    s->top=0;    
}
//判断栈是否为空;
int StackEmpty(SeqStackConst s)
{
    return s->top==-1;
}
//判断栈是否满;
int StackFull (SeqStackConst s)
{
    return s->top==SeqSize-1;
}
//进栈
void Push (SeqStackConst s,DataType into)
{
    if(StackFull(s))
    {
        cout<<"Stack overflow"<<endl;
    }
    else
    {
        s->data[++s->top]=into;
    }
}
//退栈
DataType Pop(SeqStackConst s)
{
    if(StackEmpty(s))
    {
        cout<<"Stack underflow"<<endl;
    }
    else
        return s->data[s->top--];
    return 0;
}
//取栈顶元素
/*
DataType GetStackTop(SeqStackConst s)
{
    if(StackEmpty(s))
    {
        cout<<"Stack is empty."<<endl;
    }
        return s->data[s->top];
}
*/
//数制转换
void TransformInt (DataType originalNum,DataType transformNum)
{
    int i;
    SeqStackConst stackOne;

    InitStack(stackOne);

    while(originalNum)
    {
        Push(stackOne,originalNum%transformNum);
        transformNum/=transformNum;
    }
    while(!StackEmpty(stackOne))
    {
        i=Pop(stackOne);
        cout<<i;
    }
    cout<<endl;

}
void main()
{
    int originalNum,transformNum;
    cout<<"输入需要转换的数,进制;"<<endl;
    cin>>originalNum>>transformNum;
    TransformInt(originalNum,transformNum);
}

完整代码段

程序主要实现数制转换

然后编译时有出现
一运行,输入 两个数字,就出现下面的警告 :
    SeqStackConst stackOne;

    InitStack(stackOne);
中的stackOne没有初始化

请大大们帮个忙.....

[[it] 本帖最后由 yzdying 于 2008-11-6 23:28 编辑 [/it]]

test.jpg (16.29 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: top void include return 
2008-11-06 19:30
youhm
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2006-5-25
收藏
得分:0 
stackOne是一个指针,没有给它申请空间,就对其成员赋值
2008-11-06 21:11
choco1024
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:183
专家分:140
注 册:2008-8-31
收藏
得分:0 
或许不必按书上的那样定义栈,栈也可以用一维数组表示,下面就是我用一个一维数组达到和栈相同的效果,不过思想是栈的。
#include <stdio.h>
#define L 20
void Converse(int n,int base)
{
    int s[L],x,top;
    top=-1;
    while(n)
    {
        s[++top]=n%base;
        n=n/base;
    }
    while(top!=-1)
    {
        x=s[top--];
        printf("%d",x);
    }
}
void main()
{
    int n,base;
    printf("请输入需要转换的十进制数值:\n");
    scanf("%d",&n);
    printf("请输入转换的进制:\n");
    scanf("%d",&base);
    Converse(n,base);
}
2008-11-06 21:24
yzdying
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-3-27
收藏
得分:0 
这个程序是一个一维数组

是顺序表栈
2008-11-06 22:47
快速回复:求助请高手帮忙 (问题已解决)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019656 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved