XJTU第 10 周 / 编程题 - 编写进制转换函数
编写进制转换函数,函数原型如下:
void dtoboh(int n,int t,char res[]);
功能是将十进制整数n(n>=0)转换为t进制数(即2、8及16进制),结果存放在res字符数组中。
并编写测试用的主函数。
————————
如输入:
248,2
则输出:
11111000
————————
如输入:
248,8
则输出:
370
————————
如输入:
248,16
则输出:
F8
——————————
#define _CRT_SECURE_NO_WARNINGS//一口气写完主函数,自顶向下,逐步分解
#include<stdio.h>
#include<math.h>
#include<string.h>
void dtoboh(int n, int t, char res[])//引入函数
{
int i;
if (t < 10)//针对2,8进制
{
for (i = 0;; i++)
{
if (n == 0)
{
break;
}
res[i] = n % t + '0';
n = n / t;
}
}
else//针对16进制
{
for (i = 0; n != 0; i++, n = n / t)
{
if (n%t < 10)
{
res[i] = n % t + '0';
}
else
res[i] = n % t - 10 + 'A';
}
}
res[i++] = '!';//结束判断
}
int main()
{
int n, t, m;
int i;
char res[100];
scanf("%d,%d", &n, &t);
if (n == 0) {
printf("0");
return 0;
}
dtoboh(n, t, res);
for (i = 0; res[i] != '!'; i++);
for (i--; i >= 0; i--)//倒序输出
printf("%c", res[i]);
}
希望这篇文章可以帮到你
如果有什么修改意见可以提出