| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 513 人关注过本帖
标题:第一个栈程序~,错了(不可运行)
取消只看楼主 加入收藏
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
第一个栈程序~,错了(不可运行)
程序代码:
#include<stdio.h>
#include<malloc.h>
#define Maxlen 20//顺序栈存放的最多文件个数为Maxlen
typedef int elemtype;
typedef struct sqstack
{
    elemtype data[Maxlen];
    int top;
}stack;
void InitStack(stack *st)//初始化空栈
{
   
   
    st->top=0;//以零表示空栈

}
void push(stack *st,int x)//入栈
{
    if(st->top==Maxlen-1)
    {
        printf("该栈已满\n");

    }
    else
    {
        st->top++;
        st->data[st->top]=x;
       
    }
}
void disp(stack *st)//输出栈中所有元素
{
   
    int i;
    for(i=st->top;i>0;i--)
    printf("%4d",st->data[i]);
    printf("\n");
}

   
void Conversion(stack *st,int number,int digit)
{
    InitStack(st);//初始化空栈
    while(number)
    {
        push(st,number%digit);
        number/=digit;
    }

}
       
void main()
{
    stack *st;
   
    int number,digit;//number 是十进制数,digit是要转换的进制基数
   
    printf("please input the two numbers\n");
    while(1)
    {
        printf("温馨提示:你输入的digit必须是2或者8中的一个\n");
        scanf("%d%d",&number,&digit);
        if(number<0||digit<0)
            printf("the numbers you input must be over 0,please input again\n");
        else
            break;
    }
    Conversion(st,number,digit);//进入进制转换函数
    printf("输出十进制数%d转换成%d进制后的数",number,digit);
   
    disp(st);//输出转换后的对应进制数
}
        
这个题的功能是实现十进制到二进制或八进制的转化,但是不可运行。不知道为何。我跟踪到输出函数disp貌似就是这个地方错了。,但是我不知道为什么??请指点一二,还有我栈多建立应该没错吧?
搜索更多相关主题的帖子: 运行 
2010-10-24 12:10
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
谢谢了,就是我一直想不明白的是为什么要编程取地址呢?我理解的是st是个stack类型的指针,指向了一个栈,然后对期进行相应操作,和链表类比下,还是想不通,麻烦你给解释下行吗?
2010-10-24 16:37
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
哦~,谢谢了~,我没还没学C++呢!我用的是C语言实现
2010-10-24 18:46
快速回复:第一个栈程序~,错了(不可运行)
数据加载中...
 
   



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

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