输入数据有多组,每组单独占一行,第1个数n(n<=20)表示该组测试数据的个数,后跟n个整数。n为0时结束,不处理。 【输出形式】对应每组输入,输出逆序的结果,每组单独占一行,数据之间用一个空格分隔。c语言
时间: 2024-11-20 22:54:58 浏览: 97
HttpRunner实现参数化数据驱动机制
在 C 语言中,你可以通过遍历数组并使用栈来实现这种输入数据的逆序输出。下面是一个简单的示例程序来完成这个任务:
```c
#include <stdio.h>
#include <stdlib.h> // 包含栈操作相关的头文件
// 定义栈结构体
typedef struct {
int* data;
int top; // 栈顶指针
int size; // 栈的最大容量
} Stack;
// 初始化栈
Stack init_stack(int size) {
Stack s = {malloc(size * sizeof(int)), 0, size};
return s;
}
// 入栈操作
void push(Stack* s, int value) {
if (s->top == s->size - 1) {
printf("Stack overflow!\n"); // 当栈满时提示错误
return;
}
s->data[s->top++] = value;
}
// 出栈操作
int pop(Stack* s) {
if (s->top == 0) {
printf("Stack underflow!\n");
return -1; // 当栈空时返回错误码
}
return s->data[--s->top];
}
// 读取输入并逆序输出
void reverse_input() {
int n, input;
while (scanf("%d", &n), n != 0) {
Stack s = init_stack(n);
for (int i = 0; i < n; i++) {
scanf("%d", &input);
push(&s, input);
}
// 逆序输出
for (int i = s.top - 1; i >= 0; i--) {
printf("%d ", pop(&s)); // 输出元素前加空格
}
printf("\n"); // 每组输出后换行
}
}
int main() {
reverse_input();
return 0;
}
```
这个程序首先定义了一个栈的数据结构,然后实现了入栈、出栈操作以及读取输入并逆序打印的功能。当你运行这个程序时,它会按照描述的要求处理每一组输入数据,并将结果按逆序输出到屏幕上。
阅读全文