| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖
标题:帮忙看下使用顺序栈,完成m进制到n进制的转换程序哪里错了?顺便帮写下程序 ...
只看楼主 加入收藏
fan1
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-5-23
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
帮忙看下使用顺序栈,完成m进制到n进制的转换程序哪里错了?顺便帮写下程序的流程图!非常谢谢!!
#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));
     s->top=-1;         //初始化后要设top为-1
   
     while(x != 0)
     {
         n = x % n;
         input_seqstack(s,n);
         x = x / n;
     }
     while(s->top>-1)
     {
         out_seqstack(s);//
     }
     putchar('\n');
     return 1;
 }
 
int main()
 {
     int n;
     pseqstack s;
     s = (pseqstack)malloc(sizeof(seqstack));
     printf("输入要转化的进制整数:\n");
     scanf("%d",&n);
     //printf("选择你要转换成的进制数:\n");
     change(n);
     return 0;
 }
 
搜索更多相关主题的帖子: top include return 流程图 
2012-05-23 17:52
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:20 
     int n;
      pseqstack s;
      s = (pseqstack)malloc(sizeof(seqstack));
      s->top=-1;         //初始化后要设top为-1
     
     while(x != 0)
      {
          n = x % n;
          input_seqstack(s,n);
          x = x / n;
      }
      while(s->top>-1)
      {
          out_seqstack(s);//
      }
      putchar('\n');
      return 1;

n在那儿初始化
2012-05-24 18:53
fan1
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-5-23
收藏
得分:0 
回复 2楼 寒风中的细雨
那怎么改?能帮忙改下吗?O(∩_∩)O谢谢!!!
2012-05-24 19:09
快速回复:帮忙看下使用顺序栈,完成m进制到n进制的转换程序哪里错了?顺便帮写下 ...
数据加载中...
 
   



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

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