m0_68492093 2022-04-23 12:09 采纳率: 50%
浏览 50
已结题

问题不难,时间紧张。

利用栈这种数据结构,编程实现将一个十进制整数n转换成r进制数(r的取值为2~9)。
要求:
1、栈的存储结构为顺序栈,不能是链栈。
2、使用辗转相除法实现数制的转换。

  • 写回答

2条回答 默认 最新

  • 不会长胖的斜杠 后端领域新星创作者 2022-04-23 12:12
    关注

    望采纳~

    #include <stdio.h>
    #include <stdlib.h>
     
    #define ERROR 0
    #define OK 1
    #define  MAXSIZE  20
    typedef int ElemType;
     
    typedef struct Sqstack{
        ElemType *top;
        ElemType *base;
        ElemType stacksize;
    }stack;
     
    /*Function:栈初始化 */ 
    int Initstack04(stack *s){
        s->base=(ElemType *)malloc(MAXSIZE*sizeof(ElemType));//申请空间
        if(s->base==NULL) {
            printf("栈创建失败!");
            return ERROR; 
        }
       s->top=s->base;
       s->stacksize=MAXSIZE;
       printf("栈创建成功!"); 
       return OK;
    }
    /*Function:入栈*/ 
    int Push04(stack *s,ElemType e){
        if(s->top-s->base==MAXSIZE){
            return ERROR;
        }
        *s->top++=e;
        return OK;
    } 
    /*Function:出栈*/ 
    int Pop04(stack *s){
        if(s->top==s->base){
            printf("栈为空栈!\n");
            return ERROR;
        }
        s->top--;
        printf("%d ",*s->top);
        return OK;
    }
    /*Function:进制转换*/
    void transition(stack *s){
         int n,m;
         printf("请输入您要转换的数字:\n");
         scanf("%d",&m);
         printf("请输入您要转换的进制:\n");
         scanf("%d",&n);
         while(m){
             Push04(s,m%n);//余数入栈 
             m=m/n;
            }
         printf("转换结果为:\n");
         while(s->top!=s->base){//输出 
             Pop04(s);
         }
    }
    void main(){
        stack s;
        Initstack04(&s);
        transition(&s);
    }
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 创建了问题 4月23日

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。