| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 556 人关注过本帖
标题:哪位大神帮我看看这里怎么了,有关于栈的操作的,虚心请教,求解释
只看楼主 加入收藏
暗静暗静呢
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-6-26
结帖率:50%
收藏
 问题点数:0 回复次数:8 
哪位大神帮我看看这里怎么了,有关于栈的操作的,虚心请教,求解释
#include <stdio.h>
#define size 50
#include <malloc.h>
#define OVERFLOW -1
#define OK 1
#define ERROR 0
typedef int elemtype;
typedef int status;
typedef struct
{
 elemtype base[size];
 int top;
}stack;
void   initstack(stack *s)
{//初始化空栈
 s->top=-1;
}
void push(stack *s,elemtype e)
{//元素进栈
 s->top++;
 s->base[s->top]=e;
}
void output(stack *s)
{//output all elements in the stack s
 int i;
 for(i=s->top;i>=0;i--)
 {
  printf("%-5d",s->base[i]);
 }
}
status gettop(stack s,elemtype topelem)
{//get the top element of stack s
 topelem=s.base[s.top];
 
 return topelem;
}
void delstack(stack *s)
{//删除栈顶元素
 s->base[s->top--]=0;
}
void main()
{
 stack *s;
 int flag=1,a,temp,i;
 initstack(s);           warning C4700: local variable 's' used without having been initialized         
 
 printf("十进制转八进制\n请输入一个十进制数a=");
 scanf("%d",&a);
 temp=a;
 while(temp!=0)
 {
  i=temp%8;
  push(s,i);
  temp=temp/8;
 }
 printf("%d的八进制代码为",a);
 output(s);printf("\n");
}

[ 本帖最后由 暗静暗静呢 于 2015-6-27 13:37 编辑 ]
搜索更多相关主题的帖子: elements include status 元素 
2015-06-26 15:59
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
你的initstack函数和pop函数需要指针参数,你的主函数中s不是指针。你的删除函数中把int数组的值赋值为NULL是不行的,这不是字符串

一片落叶掉进了回忆的流年。
2015-06-26 21:04
暗静暗静呢
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-6-26
收藏
得分:0 
回复 2楼 诸葛欧阳
你好,前面的我已经知道怎么改了,就那个删除函数还是不懂,能不能再仔细说下怎么改,初学者好多不懂,谢谢
2015-06-26 21:28
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
你定义的是一个数组,实际上是无法删除的,因为数组空间已经分配了通过数组名总能访问其中的元素。你可以把要删除的元素设为某特定值表示其已被删除如0,-1等

一片落叶掉进了回忆的流年。
2015-06-26 21:33
暗静暗静呢
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-6-26
收藏
得分:0 
回复 4楼 诸葛欧阳
谢谢
2015-06-26 21:34
暗静暗静呢
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-6-26
收藏
得分:0 
回复 4楼 诸葛欧阳
做到后面,那个output(s)有错误,能不能解释一下,该怎么改
2015-06-27 12:58
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
编译信息是什么

一片落叶掉进了回忆的流年。
2015-06-27 14:31
暗静暗静呢
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2015-6-26
收藏
得分:0 
回复 7楼 诸葛欧阳
我改了一下,那个output(s)的解决了,可是后面又出现这个错误  initstack(s);           warning C4700: local variable 's' used without having been initialized
这应该是没初始化,可是我不知道怎么初始化,怎么解决,求指导
2015-06-27 14:44
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
你定义的s是个指针,你需要把它指向一个结构体

一片落叶掉进了回忆的流年。
2015-06-27 15:50
快速回复:哪位大神帮我看看这里怎么了,有关于栈的操作的,虚心请教,求解释
数据加载中...
 
   



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

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