用c语言,编写函数funD(n),用于将十进制正整数n(不超过6位)转换为十六进制整数。 主函数为 char hex[8]=“0X”; main(){ unsigned int n; printf(“输入一个正整数:”); scanf(“%u",&n); funD(n); printf(“%d的十六进制整数为%s”,n,hex);}
时间: 2023-06-16 08:03:53 浏览: 65
以下是代码实现:
```c
#include <stdio.h>
void funD(unsigned int n) {
char hex[8] = "0X"; // 初始化十六进制字符串
int i = 0;
while (n) {
int mod = n % 16;
if (mod < 10) {
hex[2 + i] = mod + '0';
} else {
hex[2 + i] = mod - 10 + 'A';
}
n /= 16;
i++;
}
// 反转字符串
int left = 2, right = 2 + i - 1;
while (left < right) {
char temp = hex[left];
hex[left] = hex[right];
hex[right] = temp;
left++;
right--;
}
printf("%s", hex); // 输出十六进制字符串
}
int main() {
unsigned int n;
printf("输入一个正整数:");
scanf("%u", &n);
funD(n);
printf("%d的十六进制整数为", n);
return 0;
}
```
说明:
1. 函数`funD`接受一个十进制正整数`n`,将其转换为对应的十六进制字符串。
2. 十六进制字符串初始化为`"0X"`,其中`X`表示十六进制符号。
3. 依次取`n`的每一位,计算对应的十六进制数,并将其转换为字符存储到十六进制字符串中。
4. 最后反转十六进制字符串,因为在转换过程中是从低位到高位依次添加的,需要将其反转为高位到低位。
5. 主函数中输入一个正整数`n`,调用`funD`函数进行转换,并输出结果。
阅读全文