c语言scanf输入一个十进制整数,输出八进制、十六进制 完整的代码
时间: 2024-10-16 18:17:13 浏览: 36
在C语言中,你可以使用`scanf`函数获取用户输入的十进制整数,然后分别转换成八进制和十六进制并输出。以下是完整的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 将十进制转为八进制和十六进制
void convert(int decimal) {
char octal[50], hexadecimal[50];
// 转换为八进制
sprintf(octal, "%o", decimal);
printf("八进制形式: %s\n", octal);
// 转换为十六进制
sprintf(hexadecimal, "%x", decimal);
printf("十六进制形式: %s\n", hexadecimal);
}
int main() {
int num;
// 输入十进制整数
printf("请输入一个十进制整数: ");
if (scanf("%d", &num) != 1 || num <= 0) { // 检查输入是否合法
printf("错误的输入!\n");
return 1;
}
// 转换并输出
convert(num);
return 0;
}
```
在这个程序中,我们首先定义了一个名为`convert`的函数,它接受一个十进制整数作为参数,并使用`sprintf`将该数字转换为八进制和十六进制字符串。在`main`函数里,通过`scanf`读取用户输入的整数,然后调用`convert`函数进行转换。
阅读全文