C语言实现十进制数到负进制数的转换
以下是使用C语言编写的程序来将一个十进制数转换为负进制数的形式:
#include <stdio.h>
void convertToNegativeBase(int n, int base) {
char result[100];
int i = 0;
while (n != 0) {
int remainder = n % base;
n /= base;
if (remainder < 0) {
remainder += (-base);
n += 1;
}
if (remainder < 10) {
result[i++] = remainder + '0';
} else {
result[i++] = remainder - 10 + 'A';
}
}
for (int j = i - 1; j >= 0; j--) {
printf('%c', result[j]);
}
}
int main() {
int n, base;
scanf('%d %d', &n, &base);
convertToNegativeBase(n, base);
printf(' (%d)\n', base);
return 0;
}
在程序中,我们定义了一个 convertToNegativeBase 函数,用于将十进制数转换为负进制数的形式。函数接受两个参数:n 是要转换的十进制数,base 是负进制数的基数。函数使用一个字符数组 result 来存储转换后的结果。首先,通过除以基数和取余数的操作,将每个位的数码计算出来,并存储在 result 数组中。然后,根据基数的大小,将每个数码转换成对应的字符。最后,通过逆序遍历 result 数组,将转换后的结果输出。
在 main 函数中,我们读取输入的十进制数 n 和负进制数的基数 base,然后调用 convertToNegativeBase 函数进行转换,并将结果输出。
希望这个程序能帮助你将一个十进制数转换为负进制数的形式!如果有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/oUt 著作权归作者所有。请勿转载和采集!