用switch语句设计一个选择式菜单,编写链式栈进栈、出栈、显示栈中全部元素,将一个正整数n转换成R进制,要求用顺序栈的来实现。
时间: 2024-05-10 21:18:01 浏览: 80
以下是使用switch语句设计的选择式菜单代码:
```c
#include <stdio.h>
int main() {
int choice;
printf("请选择操作:\n");
printf("1. 添加\n");
printf("2. 删除\n");
printf("3. 显示全部\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("执行添加操作\n");
break;
case 2:
printf("执行删除操作\n");
break;
case 3:
printf("执行显示全部操作\n");
break;
default:
printf("无效的选择\n");
break;
}
return 0;
}
```
以下是使用顺序栈实现将一个正整数n转换成R进制的代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int top;
} SqStack;
void initStack(SqStack *s) {
s->top = -1;
}
int isEmpty(SqStack s) {
return s.top == -1;
}
int push(SqStack *s, int x) {
if (s->top == MAX_SIZE - 1) {
return 0;
}
s->top++;
s->data[s->top] = x;
return 1;
}
int pop(SqStack *s, int *x) {
if (s->top == -1) {
return 0;
}
*x = s->data[s->top];
s->top--;
return 1;
}
void conversion(int n, int r) {
SqStack s;
initStack(&s);
while (n) {
push(&s, n % r);
n = n / r;
}
int x;
while (!isEmpty(s)) {
pop(&s, &x);
printf("%d", x);
}
printf("\n");
}
int main() {
int n, r;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("请输入一个进制r:");
scanf("%d", &r);
printf("转换结果为:");
conversion(n, r);
return 0;
}
```
其中,initStack函数用于初始化栈,isEmpty函数用于判断栈是否为空,push函数用于入栈,pop函数用于出栈并将出栈的元素保存在参数x中,conversion函数用于将一个正整数n转换成R进制并输出。
阅读全文