帮忙看下进制转换问题 利用栈
程序代码:
#include <stdio.h> #include <stdlib.h> #include <malloc.h> #define MAX 100 typedef struct { int data[MAX]; int top; }seqstack, *pseqstack; pseqstack s; //s = (pseqstack)malloc(sizeof(seqstack)); pseqstack init_seqstack() { pseqstack s; s = (pseqstack)malloc(sizeof(seqstack)); if(s) s ->top = -1; return s; } int empty_seqstack(pseqstack s) { if(s ->top == -1) return 1; else return 0; } int input_seqstack(pseqstack s,int x) { if(s ->top ==MAX - 1) return 0;//栈满不能入栈 else { s ->top ++; s ->data[s ->top] = x; return 1; } } int out_seqstack(pseqstack s) { int x; if (empty_seqstack(s)) //栈空不能出栈 return 0; else { x = s ->data[s ->top]; s ->top--; printf("%d",x); return 1; } } int gettop_seqstack(pseqstack s) { int x; if(empty_seqstack(s)) return 0; else { x = s->data[s ->top]; return (1); } } int change(int x) { int n; pseqstack s; s = (pseqstack)malloc(sizeof(seqstack)); while(x != 0) { n = x % 2; input_seqstack(s,n); x = x / 2; } out_seqstack(s); return 1; } int main() { int n; pseqstack s; s = (pseqstack)malloc(sizeof(seqstack)); printf("输入要转化的十进制整数:\n"); scanf("%d",&n); //printf("选择你要转换成的进制数:\n"); change(n); return 0; }通过编译,但是好像进栈有问题,在Win-TC中可以运行,但是没有实现转换,比如输入10输出的是0101而不是1010,应该是进栈没有成功。
在vc中运行出现 是怎么回事?新手求解答
[ 本帖最后由 木头lbj 于 2011-3-30 12:33 编辑 ]