/********进制转换程序(代码规范模版)by青青 欢迎雅正************\
#include<stdio.h>
#include<math.h> //头文件
/*******************************************************************************
*函数名 : TtoD
*函数功能 : t进制转十进制
*输 入 :number 、t
*输 出 :Number
*******************************************************************************/
//part 1
int TtoD(int number,int t) //T to Decimal
{
int remainder[1000]={0}; //余数
int i=0; //记次数
int Number=0; //结果
do{
remainder[i]=number%10; //取余
// printf("remainder[%d]=%d\n",i,remainder[i]); //debug
number/=10; //除10
Number+=remainder[i]*pow(t,i); //倒序表示
i++;
}while(number!=0);
// printf("转换为十进制后是;%d\n",Number); //debug
return Number;
}
/*******************************************************************************
* 函数名 : DtoT
* 函数功能 : 十进制转t进制
*输 入 :number 、T
*输 出 :Number
*******************************************************************************/
//Part 2
int DtoT(int number,int T) //Decimal to T
{
int remainder[1000]={0}; //余数
int i=0; //计次数
do{
remainder[i]=number%T; //取余
// printf("remainder[%d]=%d\n",i,remainder[i]); //debug
number=number/T; //除T
// printf("number=%d\n",number); //debug
i++;
// printf("i=%d\n",i); //debug
}while(number!=0);
printf("转换后:\n");
do{ //反向输出
i--;
if(remainder[i]<10) {
printf("%d",remainder[i]);
}
else {
switch(remainder[i]){
case 10: printf("A"); break;
case 11: printf("B"); break;
case 12: printf("C"); break;
case 13: printf("D"); break;
case 14: printf("E"); break;
case 15: printf("F"); break;
}
}
}while(i!=0);
printf("\n"); //分隔
return i; //检测
}
/*******************************************************************************
* 函数名 : main
* 函数功能 : 实现进制转换
*输 入 :number 、t
*输 出 :Number
*******************************************************************************/
int main()
{
int number; //原数
int t=2; //原进制
int T=2; //目标进制
int Number=1; //结果&检测
int check1; //检查
int check2;
int check3=0;
//No. 1 输入
printf("请输入需要操作的数字:\n");
scanf("%d",&number);
check2=number; //替换并用于检测
printf("原本是几进制:\n");
scanf("%d",&t);
//No. 2 检查
do{
check1=check2%10;
check2/=10;
// printf("check1=%d check2=%d\n",check1,check2); //debug
if(check1>=t)
{ //检测是否输入有误
printf("输入有误\n"); //出错后停止后续操作
check3=1;
break;
}
}while(check2!=0);
if(check3==0)
{
//No. 3 调用函数
Number=TtoD(number,t); //转换为十进制
printf("需要转换为几进制:\n");
scanf("%d",&T);
if(T<=16)
{ //检测是否输入有误
Number=DtoT(Number,T); //转换为需要进制
//No. 4 检测 Part 2 是否正常运行
printf("检测:\n"
" %d\n ",Number); //输出检测
}
else
{
printf("输入有误\n"); //出错后停止后续操作
}
}
return 0;
}
C语言代码规范
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天闲来无聊,带着大家编写黑窗口版本的2048,效果如下: 一、游戏介绍 《2048》是最近比较流行的一款数字游戏...