通过栈实现键盘输入一个十进制数,输出对应的二级制数,用c语言编程
时间: 2024-03-03 22:51:29 浏览: 24
以下是通过栈实现将十进制数转换为二进制数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define STACK_SIZE 100
typedef struct {
int top;
int data[STACK_SIZE];
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
int isStackEmpty(Stack *s) {
return s->top == -1;
}
int isStackFull(Stack *s) {
return s->top == STACK_SIZE - 1;
}
void push(Stack *s, int x) {
if (isStackFull(s)) {
printf("Stack is full\n");
exit(1);
}
s->data[++s->top] = x;
}
int pop(Stack *s) {
if (isStackEmpty(s)) {
printf("Stack is empty\n");
exit(1);
}
return s->data[s->top--];
}
int main() {
int n;
Stack s;
initStack(&s);
printf("Enter a decimal number: ");
scanf("%d", &n);
while (n > 0) {
push(&s, n % 2);
n /= 2;
}
printf("Binary number: ");
while (!isStackEmpty(&s)) {
printf("%d", pop(&s));
}
printf("\n");
return 0;
}
```
首先定义了一个栈的结构体,包含栈顶指针和数据数组。然后定义了一些栈的基本操作,如初始化、判断是否为空、判断是否已满、入栈和出栈。在主函数中,先输入一个十进制数,然后通过栈将其转换为二进制数并输出。