C语言利用栈实现十进制转换成其他进制的代码
时间: 2023-11-18 13:05:34 浏览: 85
C和Python使用栈结构实现进制转换
以下是C语言利用栈实现十进制转换成其他进制的代码,以转换成二进制为例:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_STACK_SIZE 100
typedef struct {
int top;
int data[MAX_STACK_SIZE];
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
void push(Stack *s, int value) {
if (s->top < MAX_STACK_SIZE - 1) {
s->data[++s->top] = value;
} else {
printf("Stack is full.\n");
}
}
int pop(Stack *s) {
if (s->top >= 0) {
return s->data[s->top--];
} else {
printf("Stack is empty.\n");
return -1;
}
}
int isEmpty(Stack *s) {
return s->top == -1;
}
void convertDecimalToBinary(int decimal) {
Stack s;
initStack(&s);
while (decimal > 0) {
push(&s, decimal % 2);
decimal /= 2;
}
printf("Binary: ");
while (!isEmpty(&s)) {
printf("%d", pop(&s));
}
printf("\n");
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
convertDecimalToBinary(decimal);
return 0;
}
```
解释:
首先定义了一个栈的结构体,包含栈顶指针和数据数组。然后定义了栈的初始化、入栈、出栈、判空等基本操作。
接下来定义了一个函数`convertDecimalToBinary`,用于将十进制数转换成二进制数。该函数创建了一个栈`s`,然后使用循环将十进制数的每一位转换成二进制数并入栈。最后,从栈顶开始依次出栈并打印到控制台。
在`main`函数中,首先读入用户输入的十进制数,然后调用`convertDecimalToBinary`函数将其转换成二进制数并打印到控制台。
你可以根据需要修改代码来实现将十进制数转换成其他进制数。
阅读全文