编写一个程序,输入一个十进制数,输出与之等价的八进制数 编写一个程序,输入一个十进制数,输出与之等价的八进制数 使用c语言
时间: 2024-10-06 14:05:37 浏览: 37
在C语言中,你可以通过循环和除法运算将十进制转换成八进制。这里有一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
// 函数用于将十进制转为八进制字符串
char* decimal_to_octal(int decimal_num) {
char octal_str[32]; // 八进制字符串足够大存储32位整数
int i = 0;
while (decimal_num > 0) {
octal_str[i] = decimal_num % 8 + '0'; // 余数转换为字符并加到字符串前
decimal_num /= 8; // 向左移动一位
i++;
}
if (i == 0) {
octal_str[i] = '0'; // 如果原数字为0,则字符串只包含'0'
}
octal_str[i] = '\0'; // 添加终止符
reverse(octal_str); // 逆序字符串,因为最低位在最左边
return octal_str;
}
// 逆序函数
void reverse(char str[]) {
int start = 0, end = strlen(str) - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
int decimal_input;
printf("请输入一个十进制数: ");
scanf("%d", &decimal_input);
char* octal_output = decimal_to_octal(decimal_input);
printf("等价的八进制数为: %s\n", octal_output);
free(octal_output); // 释放内存
return 0;
}
```
当你运行这个程序并输入一个十进制数,它会返回相应的八进制形式。例如,如果输入`255`,则输出将是`377`。
阅读全文