十进制转二至九进制
来源:互联网 发布:关于健康的软件 编辑:程序博客网 时间:2024/05/17 23:38
分析:
算法基于的原理是:N=(N div d)×d+N mod d(div为整除运算,mod为求余运算),先得到的余数为低位后输出,后得到的余数为高位先输出,因此,将求得的余数放入栈中,再将栈元素依次输出即可得到转换结果。
算法如下:
#include<stdio.h>
#include<stdlib.h>
typedefstruct node
{int data;
structnode *next;
}
LinkStack;
LinkStack*Push(LinkStack *LS,int x) //入栈函数
{ LinkStack *p;
p=(LinkStack*)malloc(sizeof(LinkStack));
p->data=x;
p->next=LS;
LS=p;
returnLS;
}
LinkStack*Conversion(LinkStack *LS) //进行数值转换
{ int n=0;
intd=0;
printf("请输入要转换的数:\n");
scanf("%d",&n);
printf("请输入基数(2~9之间):\n");
scanf("%d",&d);
if(n<0||d<2||d>9)
{ printf("输入错误!\n");
exit(0);
}
if(n==0)//n==0,直接入栈
LS=Push(LS,0);
while(n)//当n!=0,进行求余、求商
{LS=Push(LS,n%d); //将余数入栈
n=n/d;
}return LS;
}
voidPrint(LinkStack *LS) //输出转换结果
{LinkStack *u;
u=LS;
printf("转换结果为:\n");
while(u!=NULL)
{ printf("%d",u->data);
u=u->next;
} printf("\n");
}
voidmain()
{ LinkStack *LS;
LS=NULL;
LS=Conversion(LS);
Print(LS);
}
- 十进制转二至九进制
- 【Java】“手动”十进制转二至九进制
- 十进制
- 十进制
- 十进制
- 十进制-十六进制
- 二十进制
- 十进制十六进制
- 十进制转各进制
- 十进制转换
- 十进制研究
- 十进制转换
- 十进制转换
- 十进制-十六进制
- 十进制表示
- 十进制-->十六进制和十进制-->二进制
- 十进制转八、十六、十进制
- 十进制-->二进制,十进制-->八进制,十进制-->十六进制【函数封装】
- Facebook 服软,这周把 React 协议改成 MIT你还会用吗?
- java 并发包 API介绍
- 用 Certbot 一键升级你的网站为 Https
- DDL语句为什么不能回滚
- Java正则表达式的语法与示例
- 十进制转二至九进制
- fideasray官网总结
- 前后台数据交互编码问题
- ajax页面跳转并传值到下一个页面的
- 比特币深层技术原理浅析
- 使用JQ来控制浏览器的进退
- 第一张数字货币银行卡问世:线上线下直接刷卡消费,手续费全免,还能贷款
- 电阻抗断层成像简介
- Java随机生成ID