```c
#include <stdio.h>
int main() {
int decimalNum, octNum = 0, i = 1;
printf("Enter a decimal number: ");
scanf("%d", &decimalNum);
while (decimalNum != 0) {
octNum += (decimalNum % 8) * i;
decimalNum /= 8;
i *= 10;
}
printf("The octal representation of the decimal number is: %d", octNum);
return 0;
}
```
代码解释:
1. 先声明变量 `decimalNum` 表示要转换的十进制数,变量 `octNum` 表示转换后的八进制数,变量 `i` 表示八进制数每一位的权重,初始为1。 2. 通过 `printf` 函数和 `scanf` 函数分别实现读入要转换的十进制数和输出转换后的八进制数。
3. 使用 `while` 循环求出八进制数各位的值,并不断将结果累加到变量 `octNum` 中。具体做法是:先用 `%` 取出十进制数除以8的余数,再将余数乘以权重,将乘积累加到变量 `octNum` 中;然后将十进制数除以8,更新 `decimalNum` 的值;最后将权重乘以10,更新 `i` 的值。代码转换
4. 循环结束后,输出转换后的八进制数。