| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 365 人关注过本帖
标题:数制转换的问题-构造空栈
只看楼主 加入收藏
鸟瞰
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
快速回复:数制转换的问题-构造空栈
数据加载中...
 
   



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

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