| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 909 人关注过本帖, 1 人收藏
标题:用将十进制转化为八进制。。改不了错呀!!!
取消只看楼主 加入收藏
ray李锐
Rank: 1
来 自:奉节
等 级:新手上路
帖 子:28
专家分:7
注 册:2013-3-9
结帖率:100%
收藏(1)
已结贴  问题点数:10 回复次数:3 
用将十进制转化为八进制。。改不了错呀!!!
#include<stdio.h>
#include <malloc.h>
#define STACK_INIT_SIZE 100;
#define STACKINCERMENT 10;
#define OVERFLOW -1
#define ERROR  0
#define  OK  1
typedef   int Status;
typedef struct _stack
{
   int  *base;
   int  *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=100;
    return 1;
}//InitStack
Status StackEmpty(SqStack S)
{
    if(S->top==-1)
        return OK;
    else
        return  ERROR;
}
Status StackEmpty(SqStack S)
{
     S.base=(SElemType *)malloc(STACK_INIT_SIZE *sizeof(SElemType));
     if(S->top==NULL)  return 0;
     else return 1;
}

Status push(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(OVERFOLW);
        S.top=S.base+S.stacksize;
        S.stacksize+=STACKINCREMENT;
    }
    *S.top++=e;
     return OK;
}//Push
Status Pop(SqStack &s SElemType e)
{
    if(S.top==S.base )return ERROR;
    e=*--S.top;
    return OK;
}//Pop
void conversion()
{
    int N;
    InitStack(S);   
   
    while (N);        
    {   
    push(S,N%8);
    N=N/8;
    }
    while (!StackEmpty(S))
    {
    Pop(S,e);
    printf("%d",e);
    }
}//conversion;
void main()
{
    SqStack s;
    int e,N;
    printf("请输入一个数\n");
    scanf("%d",N);
    InitStack(s);
    conversion();
    printf("\n");
}
搜索更多相关主题的帖子: include return 八进制 
2013-04-14 20:33
ray李锐
Rank: 1
来 自:奉节
等 级:新手上路
帖 子:28
专家分:7
注 册:2013-3-9
收藏
得分:0 
回复 4楼 支风儿
这是我改后的,步骤都是跟书上一样的,但还是打不出来,你帮忙看看

#include<stdio.h>
#include<malloc.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -1
#define STACK_INIT_SIZE 100
#define STACKINCERMENT 10
typedef int SElemType;
typedef   int Status;
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;
}//InitStack
//插入操作
Status Push(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;
}//Push
//出栈
Status Pop(SqStack &s,SElemType &e)
{
    if(S.top==S.base )return ERROR;
    e=*--S.top;
    return OK;
}//Pop
Status StackEmpty(SqStack &S)//是否是空栈
{
    if(S.base==S.top)
    return OK;
    else
    return ERROR;
}
void conversion()
{
    int N;
    InitStack(S);
    scanf("%d",N);
    while (N)        
    {   
    Push(S,N%8);
    N=N/8;
    }
    while (!StackEmpty)
    {
    Pop(S,e);
    printf("%d",e);
    }
}//conversion;
int main()
{
    conversion()   
}
2013-04-15 22:52
ray李锐
Rank: 1
来 自:奉节
等 级:新手上路
帖 子:28
专家分:7
注 册:2013-3-9
收藏
得分:0 
回复 3楼 邓士林
确实有很多错,但是那个(S.top-S.base>=S.stacksize)可以吧!!书上就是这样写的
2013-04-15 22:54
ray李锐
Rank: 1
来 自:奉节
等 级:新手上路
帖 子:28
专家分:7
注 册:2013-3-9
收藏
得分:0 
回复 7楼 邓士林
thank  you...
2013-04-16 10:57
快速回复:用将十进制转化为八进制。。改不了错呀!!!
数据加载中...
 
   



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

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