| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1156 人关注过本帖
标题:数值转换器不知道出了什么问题,高手来看看
只看楼主 加入收藏
ec_月月
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-8
收藏
 问题点数:0 回复次数:2 
数值转换器不知道出了什么问题,高手来看看
#include<iostream.h>
#include<malloc.h>
#include<stdio.h>
#include<process.h>

#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;

typedef int Status;
typedef int SElemType;
typedef int Boolean;


typedef struct{
    SElemType *base;
    SElemType *top;
    int stacksize;
}SqStack;

Status InitStack(SqStack &S)
{
    S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
    if(!S.base) exit(OVERFLOW);
    S.top = S.base;
    S.stacksize = STACK_INIT_SIZE;
    return OK;
}

Status PushStack(SqStack &S, SElemType e)
{
    if(S.top - S.base >= S.stacksize)
    {
        S.base = (SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT) * sizeof(SElemType));
        if(!S.base)  exit(OVERFLOW);
        S.top = S.base + S.stacksize;
        S.stacksize += STACKINCREMENT;
    }
    *S.top++ = e;
    return OK;
}

Status PopStack(SqStack &S, SElemType e)
{
    if(S.top == S.base) return ERROR;
     e = * --S.top;
     return OK;
}

Status StackEmpty(SqStack S)
{
    if(S.top == S.base)
        return TURE;
    else  return FALSE;
    return OK;
}

void conversion(int N,int r)
{
    SqStack S;
    SElemType e;
    InitStack(S);
    if(N<0)
    {
        cout<<"您输入的数据不在范围之内!";
        cout<<endl;
        return;
    }
    if(!N)
        PushStack(S,0);
    while(N)
    {
        PushStack(S,N%r);
        N = N/r;
    }
    while(!StackEmpty(S))
    {
        PopStack(S,e);
        cout<<"\t"<<e;
    }
}

void main()
{
    int N,r;
    cout<<"请输入任意一个整数:   ";
            cin>>N;
            cout<<endl;
    cout<<"请输入要转换的进制:  ";
            cin>>r;
            cout<<endl;
        conversion(N,r);
}
以上是我写的代码,不知道为什么老出现
error C2143: syntax error : missing ')' before ';'和error C2059: syntax error : ')'。
出错的地方是S.base = (SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT) * sizeof(SElemType));
和S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
小弟初学望高手指点,在这先谢谢了
搜索更多相关主题的帖子: 数值 转换器 
2008-10-09 19:08
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
这是不是那本书上的原码啊?

2008-10-09 22:38
ec_月月
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-8
收藏
得分:0 
是原来的代码,我现在已经知道了,只是编译器的问题。vc6.0不好识别多个下划线的变量,用数字代替就没问题了
2008-10-10 23:11
快速回复:数值转换器不知道出了什么问题,高手来看看
数据加载中...
 
   



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

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