先输入一个n,表示该顺序表中要输入的数据元素个数,依次输入数据元素,每个数据元素用空格隔开,输入n个后回车结束,以逆序输出所有的数据元素,每个数据元素以空格隔开,请用c语言实现这段代码
时间: 2024-09-18 12:01:59 浏览: 95
在C语言中,你可以通过动态内存分配和结构体数组的方式来实现这个功能。首先,你需要定义一个结构体来存储数据元素,然后创建一个大小为n的结构体数组。接着,读取用户输入并存入数组,最后反转数组内容并输出。下面是一个简单的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体,假设它包含了一个int类型的值
typedef struct {
int data;
} Node;
// 助手函数,用于交换两个节点的数据
void swap(Node* a, Node* b) {
int temp = a->data;
a->data = b->data;
b->data = temp;
}
// 反转数组
void reverse(Node** arr, int n) {
for (int i = 0; i < n / 2; i++) {
swap(arr[i], arr[n - i - 1]);
}
}
int main() {
int n;
printf("请输入数据元素个数n: ");
scanf("%d", &n);
// 动态分配内存
Node* list = (Node*)malloc(n * sizeof(Node));
// 输入数据
printf("请输入数据元素(用空格隔开): ");
for (int i = 0; i < n; i++) {
scanf("%d", &list[i].data);
}
// 反转数组
reverse(list, n);
// 输出反向的数组
printf("反向输出的数据(空格分隔): ");
for (int i = 0; i < n; i++) {
printf("%d ", list[i].data);
}
printf("\n");
// 释放内存
free(list);
return 0;
}
```
阅读全文
相关推荐



















