c语言多样例输入十进制正整数,输出八进制并输出
时间: 2024-09-24 17:30:23 浏览: 46
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
在 C 语言中,你可以通过将十进制正整数转换成八进制字符串来实现这个功能。下面是一个简单的示例程序,它使用了 `itoa()` 函数(虽然该函数在某些旧版的 C 标准库中并未定义,但在许多现代编译器中可以通过 `<stdlib.h>` 包引入并使用 `sprintf()` 替代),来完成这个任务:
```c
#include <stdio.h>
#include <stdlib.h>
// 使用 sprintf() 函数实现八进制转换,注意不是标准库提供的 itoa()
char* octal_from_decimal(int decimal) {
char oct_str[20];
int i = 0;
while (decimal > 0) {
oct_str[i++] = '0' + (decimal % 8);
decimal /= 8;
}
// 将首位添加前导零,因为 `sprintf` 可能会去掉多余的零
if (oct_str[0] == '\0') {
oct_str[i] = '0';
}
oct_str[i] = '\0'; // 添加终止符
return oct_str;
}
int main() {
int decimal_num;
printf("请输入一个十进制正整数:");
scanf("%d", &decimal_num);
// 输出八进制表示
char* oct_num = octal_from_decimal(decimal_num);
printf("八进制表示为:%s\n", oct_num);
free(oct_num); // 注意释放动态分配的内存
return 0;
}
```
在这个程序中,用户会被提示输入一个十进制正整数,然后程序将其转换为八进制字符串并打印出来。
阅读全文