标题:数制转换的问题-构造空栈
只看楼主
鸟瞰
Rank: 2
等 级:论坛游民
帖 子:17
专家分:16
注 册:2014-6-7
结帖率:100%
已结贴  问题点数:20 回复次数:4 
数制转换的问题-构造空栈
//实验三   数制的转换
/*.........栈的相关操作..........*/
#include<stdlib.h>
#include<stdio.h>
#include<malloc.h>
typedef struct
{
    int *base;
    int *top;
    int stacksize;
    }sqstack;
sqstack *creatstack()
{sqstack *s;
     s->base=(int *)malloc(100*sizeof(int));
     s->top=s->base;
     s->stacksize=100;//注意理解
     return(s);}
void conversion()
{
 sqstack *S;
 int e,t;
 int n;
S=creatstack();
 printf("输入一个数转换成八进制:\n");
 scanf("%d",&n);
 if(n<0)
   {
     printf("\nThe number must be over 0.");
     return;
   }
 if(!n)
    *S->top++=0;
 while(n){
   t=n%8;
   *S->top++=t;      //先赋值,然后*s->top加1
   n=n/8;
 }
 printf("结果是:        ");
 while(S->top!=S->base)
 {
   e=*--S->top;
   printf("%d",e);
 }
}
 main()
{
     printf("\n\n\n\n\n\n");
     loop: conversion();
     getchar();
     goto loop;
}
stack *creatstack()函数中提示栈s没有初始化,该函数是构造空栈,是在vc6.0上运行的,
函数的功能是进行数制转换
搜索更多相关主题的帖子: conversion include return 八进制 
2014-11-27 22:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:20 
你自己说你的s初始化了没有?

授人以渔,不授人以鱼。
2014-11-27 23:42
鸟瞰
Rank: 2
等 级:论坛游民
帖 子:17
专家分:16
注 册:2014-6-7
得分:0 
怎么初始化?
2014-11-28 21:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
使用任何指针之前,都必须让它指向有效的位置。你只是声明了一个s,但不指向任何位置。

授人以渔,不授人以鱼。
2014-11-29 13:09
鸟瞰
Rank: 2
等 级:论坛游民
帖 子:17
专家分:16
注 册:2014-6-7
得分:0 
谢谢
2014-11-30 14:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-439275-1-1.html




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

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