C语言用数组实现10进制数转换为八进制
时间: 2024-10-29 12:19:49 浏览: 22
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
在C语言中,将十进制数转换为八进制可以借助于循环结构和除法运算。以下是一个简单的示例程序,它使用数组来存储八进制结果:
```c
#include <stdio.h>
// 函数声明
void decimal_to_octal(int num[], int base);
int main() {
int decimal_num = 1234; // 待转换的十进制数
int octal_array[10]; // 初始化一个足够大的数组来存储八进制数
// 转换函数调用
decimal_to_octal(octal_array, sizeof(octal_array));
printf("十进制数 %d 的八进制形式是:", decimal_num);
for (int i = 0; i < sizeof(octal_array); i++) {
if (octal_array[i] != 0) { // 只打印非零元素
printf("%d", octal_array[i]);
}
if (i != sizeof(octal_array) - 1) { // 避免最后一个元素后的空格
printf("");
}
}
return 0;
}
// 数字转八进制辅助函数
void decimal_to_octal(int num[], int size) {
int remainder, index = 0;
while (decimal_num > 0) {
remainder = decimal_num % 8; // 取余得到当前位的值
num[index++] = remainder; // 存储到数组中
decimal_num /= 8; // 向左移一位
}
// 如果第一位是0,则需要在前面补0
while (index < size && num[index] == 0) {
num[index++] = 0;
}
}
```
这个程序首先声明了一个`decimal_to_octal`函数,用于逐位地将十进制数转换成八进制,并存入数组`num[]`。主函数中,我们调用了这个函数并打印出转换后的八进制表示。
阅读全文