编程序实现如下功能:输入一个十进制正整数和一个表示进制的正整数n(n<10),然后将这个十进制整数转换为n进制整数,最后输出结果。 提示:可以先将求得的n进制整数的每一位数存入一个数组中,然后再按符合要求的顺序输出。 用c语言
时间: 2024-12-24 10:42:29 浏览: 6
vb题将十进制正整数转换为二进制.txt
在C语言中,你可以通过以下步骤来实现这个功能:
```c
#include <stdio.h>
#include <string.h> // 引入字符串处理函数
// 函数用于将十进制转为任意进制
char* convertToBase(int decimal, int base) {
int digits[32] = {0}; // 存储每一位的数字
int len = 0; // 记录数字位数
while (decimal > 0) {
digits[len++] = decimal % base;
decimal /= base;
}
if (len == 0) { // 如果原数为0,直接返回"0"
return "0";
}
char result[32];
for (int i = len - 1; i >= 0; i--) {
result[i] = '0' + digits[i]; // 将每位转换为字符并添加到结果字符串前
}
result[len] = '\0'; // 添加终止符
return result;
}
int main() {
int decimal, base;
printf("请输入一个十进制正整数: ");
scanf("%d", &decimal);
printf("请输入一个进制(n<10): ");
scanf("%d", &base);
// 检查base是否合法
if (base < 2 || base > 10) {
printf("无效的进制。\n");
return 1;
}
char *result = convertToBase(decimal, base);
printf("转换后的%dn进制数为: %s\n", base, result); // 输出结果
free(result); // 释放内存
return 0;
}
```
这个程序首先读取用户输入的十进制数和进制,然后检查进制是否有效。接着,它调用`convertToBase`函数将十进制转换为指定进制,并将结果存储在一个字符数组中。最后,程序输出转换后的结果。
阅读全文