c语言提示用户输入5个英语单词,然后逆序,并使用栈储存
时间: 2024-11-15 11:32:12 浏览: 0
在C语言中,你可以使用标准库函数`scanf()`来提示用户输入五个英文单词,然后通过数组来存储这些单词。接着,我们可以创建一个栈结构来实现逆序操作。以下是一个简单的步骤:
1. 首先,声明一个足够大的字符数组来存储单词,例如`char words[5][MAX_WORD_LENGTH]`,其中`MAX_WORD_LENGTH`是预设的最大单词长度。
```c
#define MAX_WORD_LENGTH 50
char words[5][MAX_WORD_LENGTH];
```
2. 使用循环提示用户输入并存储单词:
```c
int i;
for (i = 0; i < 5; i++) {
printf("请输入第%d个单词: ", i + 1);
fgets(words[i], MAX_WORD_LENGTH, stdin); // 注意去掉fgets的换行符
words[i][strlen(words[i]) - 1] = '\0'; // 结束字符串
}
```
3. 创建栈(这里使用简单的一维数组作为栈,实际上可以使用链表更高效):
```c
#define STACK_SIZE 5
char stack[STACK_SIZE][MAX_WORD_LENGTH];
int top = -1;
```
4. 将单词入栈,逆序存储:
```c
while (top != 4) { // 从最后一个元素开始依次放入栈
top++;
if (top == 4) break; // 如果已经满,则跳过剩余的单词
strcpy(stack[top], words[4]);
words[4] = words[3]; // 移动下一个单词到当前位置
words[3] = words[2];
words[2] = words[1];
words[1] = stack[top];
}
```
5. 最后,打印逆序后的单词:
```c
for (i = 0; i <= top; i++) {
printf("%s ", stack[i]);
}
```
注意,这个例子没有处理用户输入超出最大长度的情况。实际应用中,需要添加错误检查。此外,逆序操作也可以考虑使用队列来简化。
阅读全文