使用C语言实现把一个十进制正整数转换成n进制数输出
时间: 2024-10-15 14:28:19 浏览: 61
进制转换:输入一个十进制数n,把它转化为r进制数输出
在C语言中,可以使用循环和除法操作将十进制正整数转换成任意基数(n进制)的表示。这里是一个基本的算法:
```c
#include <stdio.h>
#include <string.h>
// Function to convert decimal number to any base n
void dec_to_base(int num, int base) {
char result[50]; // Buffer to store the result
int i = 0;
while (num > 0) {
result[i] = num % base + '0'; // Convert modulus to character (0-'9')
if (result[i] > '9') {
result[i] += ('A' - '9' - 1); // If greater than '9', use 'A'-'9'
}
num /= base;
i++;
}
// Add leading zeros if necessary
while (i && result[i - 1] == '0') {
result[--i] = '\0';
}
printf("The number in base %d is: ", base);
printf("%s\n", result);
}
int main() {
int decimal_num, base;
printf("Enter a decimal number: ");
scanf("%d", &decimal_num);
printf("Enter the base you want to convert to: ");
scanf("%d", &base);
dec_to_base(decimal_num, base);
return 0;
}
```
在这个程序中,`dec_to_base()` 函数接受两个参数:待转换的十进制数 `num` 和目标基数 `base`。它通过循环不断取余并添加到结果字符串中,直到 `num` 变为0。然后,它会处理超过字符 '9' 的情况(如果需要,使用大写字母 A 到 Z),最后打印出转换后的数字。
阅读全文