以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- [原创]关于编译器的问题 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=54863) |
-- 作者:hinder -- 发布时间:11/4/2007 11:49:00 AM -- [原创]关于编译器的问题 #include "stdio.h" #define TRUE 1 #define MAXSIZE 50 typedef int datatype; typedef struct { datatype stack[MAXSIZE]; int top; } seqstack; /* 顺序栈的类型定义 */ seqstack *a; /* a为顺序栈 */ void INITSTACK(seqstack *S) { S->top=0; /* 将顺序栈设置为空栈 */ }/* SEQSTACK_INITSTACK */ /* 检查顺序栈是否为空栈运算 */ int EMPTY(seqstack *S) { if(S->top==0) return (TRUE); else return (NULL); }/* SEQSTACK_EMPTY */ seqstack *PUSH(seqstack *S, datatype x) { if(S->top>=MAXSIZE-1) /* 检查顺序栈是否满 */ { printf("栈满溢出错误!\n"); return(NULL); /* 若插入元素失败,则返回0 */ } else { /* 将栈顶指针加1使之指向空单元 */ S->stack[S->top]=x; /* 将新结点插入栈顶 */ S->top++;} return(S); /* 插入成功则函数返回新栈顶指针 */ }/* SEQSTACK_PUSH */ datatype POP(seqstack *S) { datatype x; /* 保存栈顶元素数据值 */ if (EMPTY(S)) /* 检查顺序栈是否为空 */ { printf("下溢错误! "); return(NULL); /* 若删除失败返回0 */ } else /* 若顺序栈非空删除之*/ { S->top--; x=S->stack[S->top]; /* 暂存栈顶元素 */ return (x); } }/* SEQSTACK_POP */ datatype gettop_seqstack(seqstack *S) { if (EMPTY(S)) { printf("栈是空栈! "); return(NULL); } else return(S->stack[S->top]); }/* SEQSTACK_GETTOP */ main() /* 从键盘输入一批正整数,然后按相反次序输出程序 */ |
-- 作者:一分之千 -- 发布时间:11/4/2007 9:02:00 PM -- #include "stdio.h" #define TRUE 1 #define MAXSIZE 50 typedef int datatype; typedef struct { datatype stack[MAXSIZE]; int top; } seqstack; /* 顺序栈的类型定义 */ seqstack *a; /* a为顺序栈 */ void INITSTACK(seqstack *S) { S->top=0; /* 将顺序栈设置为空栈 */ }/* SEQSTACK_INITSTACK */ /* 检查顺序栈是否为空栈运算 */ int EMPTY(seqstack *S) { if(S->top==0) return (TRUE); else return (NULL); }/* SEQSTACK_EMPTY */ seqstack *PUSH(seqstack *S, datatype x) { if(S->top>=MAXSIZE-1) /* 检查顺序栈是否满 */ { printf("栈满溢出错误!\n"); return(NULL); /* 若插入元素失败,则返回0 */ } else { /* 将栈顶指针加1使之指向空单元 */ S->stack[S->top]=x; /* 将新结点插入栈顶 */ S->top++;} return(S); /* 插入成功则函数返回新栈顶指针 */ }/* SEQSTACK_PUSH */ datatype POP(seqstack *S) { datatype x; /* 保存栈顶元素数据值 */ if (EMPTY(S)) /* 检查顺序栈是否为空 */ { printf("下溢错误! "); return(NULL); /* 若删除失败返回0 */ } else /* 若顺序栈非空删除之*/ { S->top--; x=S->stack[S->top]; /* 暂存栈顶元素 */ return (x); } }/* SEQSTACK_POP */ datatype gettop_seqstack(seqstack *S) { if (EMPTY(S)) { printf("栈是空栈! "); return(NULL); } else return(S->stack[S->top]); }/* SEQSTACK_GETTOP */
=======================================
void main() /* 从键盘输入一批正整数,然后按相反次序输出程序 */ =================================== |
-- 作者:hinder -- 发布时间:11/4/2007 10:11:00 PM -- 感谢这位仁兄,但还是不能编译通过。另外 seqstack *a对 a早有定义了 |
-- 作者:卷积内核 -- 发布时间:11/5/2007 8:34:00 AM --
一分之千正解,编译及运行都没有问题啊。 seqstack *a对 a早有定义,但没有分配空间,在VC中是不允许的,但C中可以运用时分配。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
62.500ms |