C语言用栈实现10进制转换成8进制数
时间: 2023-12-27 15:04:59 浏览: 85
可以使用栈来实现10进制转换成8进制数的算法,具体步骤如下:
1. 将10进制数不断除以8,把每次的余数(0~7)依次压入栈中,直到商为0为止;
2. 依次弹出栈中元素,组成8进制数。
以下是C语言的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
int stack[MAX_SIZE];
int top = -1;
// 压栈
void push(int n) {
if (top == MAX_SIZE - 1) {
printf("Stack Overflow!");
return;
}
stack[++top] = n;
}
// 弹栈
int pop() {
if (top == -1) {
printf("Stack Underflow!");
return -1;
}
return stack[top--];
}
int main() {
int decimal, remainder;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
while (decimal != 0) {
remainder = decimal % 8;
push(remainder);
decimal /= 8;
}
printf("Octal equivalent: ");
while (top != -1) {
printf("%d", pop());
}
return 0;
}
```
输入一个十进制数,程序会将其转换成八进制数并输出。
阅读全文