| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:VC++ 运行程序中的问题?(问题已解决)
只看楼主 加入收藏
yzdying
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-3-27
收藏
 问题点数:0 回复次数:2 
VC++ 运行程序中的问题?(问题已解决)
#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:26 编辑 [/it]]

test.jpg (16.29 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 运行 
2008-11-06 19:31
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
void InitStack(SeqStackConst s)
{
    s->top=0;   
}
形参无法改变实际的对象,改使用引用
void InitStack(SeqStackConst& s)
{
    s->top=0;   
}
其它的函数也一样,你希望在函数中改变函数外的一个对象,那么传给函数的要么使用引用,要么使用指针,不然函数改自己的,函数外部的那个对象是没有变化的.
2008-11-06 22:22
yzdying
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-3-27
收藏
得分:0 
typedef SeqStack * SeqStackConst;

看这一句,这是SeqStackConst是我定义的SeqStack类型的指针喔。
是属于指针变量喔
2008-11-06 22:40
快速回复:VC++ 运行程序中的问题?(问题已解决)
数据加载中...
 
   



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

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