xjlao 2020-05-18 20:01 采纳率: 100%
浏览 24
已结题

利用链表模拟实现将十进制数2015转换为对应的八进制数。

利用链表模拟实现将十进制数2015转换为对应的八进制数。程序设计思路(包括各题的算法思想、程序中类函数定义说明和功能描述)

 主要代码及注释(各题代码及注释书写工整)

  • 写回答

2条回答 默认 最新

  • 波塞冬的祝福 2020-05-18 20:05
    关注
    #include"stdio.h"
    #include<stdlib.h>
    typedef int datatype;
    typedef struct node
    {
    	datatype data;
    	struct node *next;
    }*linkstack;
     
    //入栈
    int Push(linkstack *top,datatype x)
    {
    	linkstack s=(linkstack)malloc(sizeof(struct node));
    	if(s==NULL)
    		return 0;
    	s->data=x;
    	s->next=(*top);
    	(*top)=s;
    	return 1;
    }
     
    //判空
    int Empty(linkstack top)//判断栈是否为空
    {
    	if(top==NULL)
    		return 1;
    	return 0;
    }
    //出栈
    int Out(linkstack *top,datatype *x)//出栈
    {
    	if(top!=NULL)
    	{
    		linkstack p=(*top);
    		(*x)=(*top)->data;
    		(*top)=(*top)->next;
    		free(p);
    		return 1;
    	}
    	return 0;
    }
    //十进制整数转换为其他进制数
    void Transform(int num,int mode)//实现进制转换
    {
    	int h;
    	linkstack top=NULL;
    	printf("转化结果:");
    	if(num>0)
    	{
    		while(num!=0)
    		{
    			h=num%mode;//取余
    			Push(&top,h);
    			num=num/mode;//取整
    		}
    		while(!Empty(top))
    		{
    			Out(&top,&h);
    			printf("%d",h);
    		}
    		printf("\n");
    	}
    	else if(num<0)//当输入数字小于0
    	{
    		printf("-");
    		num=num*(-1);//将负数装换为正数
    		while(num!=0)
    		{
    			h=num%mode;
    			Push(&top,h);
    			num=num/mode;
    		}
    		while(!Empty(top))
    		{
    			Out(&top,&h);
    			printf("%d",h);
    		}
    		printf("\n");
    	}
    	else
    		printf("%d\n",0);
    }
    void main()
    {
    	int num,mode;
    	printf("请输入要转化的数:");
    	scanf("%d",&num);
    	printf("输入要转换的进制:");
    	scanf("%d",&mode);
    	if(mode==0||mode==1)//判断要转换的进制是否合法
    	{
    		printf("转换进制无效\n\n");
    		return;
    	}
    	Transform(num,mode);
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 mac playcover上原神在登录后的加载页面闪退,重新下载原神IPA和playcover均无效
  • ¥20 node-dev能不能离线安装?
  • ¥20 六子棋博弈基于Alpha-Beta剪枝搜索算法的优化
  • ¥15 mlx90393用stm32f1的单片机使用软件i2c通信一直报错
  • ¥20 校园二手交易小程序搭建
  • ¥15 请问在ubuntu用conda创建环境报错怎么能解决
  • ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
  • ¥20 python,计算区位熵和扩张指数
  • ¥15 Python环境配置
  • ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?