用C语言编写一个循环函数,实现将任意的十进制正整数转化为八进制数
时间: 2024-01-24 12:17:36 浏览: 94
可以使用以下代码实现:
```c
#include <stdio.h>
void decToOctal(int decimalNum) {
int octalNum[100], i = 0;
while(decimalNum != 0) {
octalNum[i] = decimalNum % 8;
decimalNum /= 8;
i++;
}
printf("转换为八进制数为: ");
for(int j = i - 1; j >= 0; j--)
printf("%d", octalNum[j]);
}
int main() {
int decimalNum;
printf("请输入一个十进制正整数: ");
scanf("%d", &decimalNum);
decToOctal(decimalNum);
return 0;
}
```
这个程序中,我们首先定义了一个 `decToOctal` 函数,它的参数是一个十进制正整数。在函数内部,我们使用一个循环来不断将该数除以8,并将余数存储在一个数组 `octalNum` 中,直到该数变为0为止。最后,我们倒序遍历该数组,并输出每个元素,即可得到该十进制正整数的八进制表示。
在 `main` 函数中,我们通过 `scanf` 函数获取用户输入的十进制正整数,并调用 `decToOctal` 函数将其转换为八进制数。
相关问题
用C语言编写一个递归函数,实现将任意的十进制正整数转化为八进制数
以下是用C语言编写的递归函数,实现将任意的十进制正整数转化为八进制数:
```c
#include <stdio.h>
void decToOct(int num) {
if(num == 0) {
return;
} else {
decToOct(num / 8);
printf("%d", num % 8);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
printf("Octal equivalent: ");
decToOct(decimal);
return 0;
}
```
在这个程序中,我们定义了一个递归函数 `decToOct`,它接收一个十进制正整数 `num` 作为参数,并将其转换为八进制数。
递归函数的基本情况是当输入的数为 0 时,递归结束并返回。否则,函数会继续递归调用自身,传递 `num / 8` 作为参数,并输出 `num % 8` 的余数。这样,每次递归调用都会输出一位八进制数,直到最后一次递归结束。
在 `main` 函数中,我们首先提示用户输入一个十进制正整数,并读取输入。然后,我们调用 `decToOct` 函数,并输出转换后的八进制数。
用C语言编写一个递归函数,实现将任意的十进制正整数转化为八进制数,越简单越好
下面是一个简单的递归函数实现:
```c
void dec2oct(int n)
{
if (n == 0) {
return;
}
dec2oct(n/8);
printf("%d", n%8);
}
```
调用该函数,传入一个十进制正整数,即可输出对应的八进制数:
```c
int main()
{
int n = 123;
dec2oct(n);
printf("\n");
return 0;
}
```
输出结果为:
```
173
```
阅读全文