| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:[讨论]斑竹看过来--数值转化
只看楼主 加入收藏
xiaofkg
Rank: 1
等 级:新手上路
威 望:1
帖 子:77
专家分:0
注 册:2007-9-17
收藏
 问题点数:0 回复次数:5 
[讨论]斑竹看过来--数值转化
这个程序是把十进制
转化为八进制,编译成功,可是结果确是错误的.请高手看看,提出建议


#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 100
typedef struct
{int *base;
int *top;
int stacksize;
}sqstack;
push(sqstack *s,int e)
{if(s->top-s->base>=s->stacksize)
{s->base=realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(int));
if(!s->base)exit(OVERFLOW);
s->top=s->base+s->stacksize;
s->stacksize+=STACKINCREMENT;
}
*s->top++=e;
return OK;
}
pop(sqstack *s,int *e)
{if(s->top==s->base) return ERROR;
e=*--s->top;
return OK;
}
initstack(sqstack *s)
{s->base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!s->base) exit(OVERFLOW);
s->top=s->base;
s->stacksize=STACKINCREMENT;
return OK;
}
emptystack(sqstack *s)
{if(s->top==s->base)
return OK;
return ERROR;
}

void conversion()
{sqstack s;
int n,e;
initstack(&s);
scanf("%d",&n);
while(n)
{push(&s,n%8);
n=n/8;
}
while(!emptystack(&s))
{pop(&s,&e);
printf("%d",e);
}
}
int main()
{ conversion();
getch();
}
搜索更多相关主题的帖子: 数值 斑竹 
2007-10-22 10:20
风的声音
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2007-3-27
收藏
得分:0 
while(!emptystack(&s))
{pop(&s,&e);
printf("%d",e);
}
行参不用加&
怎么不编译了一下,这么多问题啊

一念心清净,莲花处处开。 一花一净土,一土一如来。
2007-10-22 13:18
风的声音
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2007-3-27
收藏
得分:0 
为什么一定要再conversion()函数中,定义stack为指针类型,直接是变量不就可以嘛。还有,再调用函数的时候,实在参数不用加它的类型;
initstack(&s);
scanf("%d",&n);
while(n)
{push(&s,n%8);
n=n/8;
}
while(!emptystack(&s))
{pop(&s,&e);
printf("%d",e);
}
引用也不用加上啊;
算法上没有问题,栈的基本函数有些问题吧

一念心清净,莲花处处开。 一花一净土,一土一如来。
2007-10-22 13:27
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
写的挺麻烦的.
要用到栈的思想,并不是要完完全全的把栈给实现了.

倚天照海花无数,流水高山心自知。
2007-10-22 16:07
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
把函数的返回声明写出来,所以可以默认为int,但最好写清楚.

倚天照海花无数,流水高山心自知。
2007-10-22 16:09
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
晕。。。。好长啊。。。



by 雨中飞燕 QQ:78803110 C/C++讨论群:46520219
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
2007-10-22 16:10
快速回复:[讨论]斑竹看过来--数值转化
数据加载中...
 
   



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

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