从键盘上输入五个整数或者字符,然后屏幕上逆序数出,要求用C实现并且用到顺序栈
时间: 2024-05-03 10:21:04 浏览: 78
C语言实现整数逆序输出
5星 · 资源好评率100%
Sure, 让我们开始。
以下是 C 语言实现逆序输出的代码,使用了顺序栈:
```
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 5
typedef struct {
int data[MAXSIZE];
int top;
} Stack;
void InitStack(Stack *S) {
S->top = -1;
}
int StackEmpty(Stack *S) {
return S->top == -1;
}
int StackFull(Stack *S) {
return S->top == MAXSIZE - 1;
}
void Push(Stack *S, int x) {
if (StackFull(S)) {
printf("栈已满,无法插入\n");
return;
}
S->top++;
S->data[S->top] = x;
}
int Pop(Stack *S) {
if (StackEmpty(S)) {
printf("栈已空,无法删除\n");
return -1;
}
int x = S->data[S->top];
S->top--;
return x;
}
void ReverseStack(Stack *S) {
int i, x;
Stack tmp;
InitStack(&tmp);
for (i = 0; i < MAXSIZE; i++) {
x = S->data[i];
Push(&tmp, x);
}
for (i = 0; i < MAXSIZE; i++) {
x = Pop(&tmp);
S->data[i] = x;
}
}
int main() {
Stack S;
int i, x;
InitStack(&S);
printf("请输入%d个整数:\n", MAXSIZE);
for (i = 0; i < MAXSIZE; i++) {
scanf("%d", &x);
Push(&S, x);
}
ReverseStack(&S);
printf("逆序数列为:\n");
for (i = 0; i < MAXSIZE; i++) {
printf("%d ", S.data[i]);
}
printf("\n");
return 0;
}
```
输入样例:
```
请输入5个整数:
1 2 3 4 5
```
输出样例:
```
逆序数列为:
5 4 3 2 1
```
阅读全文