用c语言栈写一个八进制转换十进制的程序
时间: 2023-11-27 13:03:09 浏览: 86
好的,以下是用C语言栈实现八进制转换十进制的程序:
```c
#include <stdio.h>
void octalToDecimal(int num) {
int decimal = 0, base = 1;
while (num > 0) {
int digit = num % 10;
decimal += digit * base;
base *= 8;
num /= 10;
}
printf("%d\n", decimal);
}
int main() {
int num;
printf("Enter an octal number: ");
scanf("%d", &num);
octalToDecimal(num);
return 0;
}
```
上述程序中的 `octalToDecimal` 函数将八进制数转换为十进制数。`num` 参数为输入的八进制数。程序中用到了一个 `while` 循环来逐位取出八进制数中的数字,并将其转换为十进制数。转换过程中用到了 `decimal` 和 `base` 两个变量,其中 `decimal` 存储最终的十进制数,`base` 存储八进制数的位数(从右往左),每次循环将 `base` 乘以 8 即可。最后将转换后的十进制数打印出来即可。
在 `main` 函数中,首先要求用户输入一个八进制数,然后调用 `octalToDecimal` 函数将其转换为十进制数,并将结果打印出来。
阅读全文