利用顺序栈将一个非负的十进制整数N转换为对应的B进制数。 c语言
时间: 2024-02-22 12:58:34 浏览: 71
顺序栈将一个非负的十进制整数N转换为对应的B进制数。
5星 · 资源好评率100%
以下是基于顺序栈实现将十进制整数N转换为B进制数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef int ElemType;
typedef struct {
ElemType data[MAX_SIZE];
int top;
} Stack;
// 初始化栈
void initStack(Stack *s) {
s->top = -1;
}
// 判断栈是否为空
int isEmpty(Stack *s) {
return s->top == -1;
}
// 判断栈是否已满
int isFull(Stack *s) {
return s->top == MAX_SIZE - 1;
}
// 入栈操作
int push(Stack *s, ElemType e) {
if (isFull(s)) {
printf("Stack is full!\n");
return 0;
}
s->top++;
s->data[s->top] = e;
return 1;
}
// 出栈操作
int pop(Stack *s, ElemType *e) {
if (isEmpty(s)) {
printf("Stack is empty!\n");
return 0;
}
*e = s->data[s->top];
s->top--;
return 1;
}
// 将十进制整数N转换为B进制数
void convert(int N, int B) {
Stack s;
initStack(&s);
while (N > 0) {
int remainder = N % B;
push(&s, remainder);
N /= B;
}
ElemType e;
while (!isEmpty(&s)) {
pop(&s, &e);
printf("%d", e);
}
printf("\n");
}
int main() {
int N = 100;
int B = 2;
convert(N, B);
return 0;
}
```
以上代码实现了将十进制整数N转换为B进制数的功能,你可以根据需要调整N和B的值来测试不同的情况。
阅读全文