设有一个线性表存放在一个一维数组中的前n个数组元素位置。请编写一个顺序表的程序,将这个线性表原地逆置。
分别输出逆置前的顺序表和逆置后的顺序表。(顺序表的元素类型为整型)
输入格式:
先输入一个整数n,表示顺序表的长度,之后输入n个整数
输出格式:
两行(每个数之间用一个空格分隔)
第一行为原来的顺序表,第二行为逆置后的顺序表
输入样例:
在这里给出一组输入。例如:
6
3 2 1 6 3 4
输出样例:
在这里给出相应的输出。例如:
3 2 1 6 3 4
4 3 6 1 2 3
#include <stdio.h>
// 函数原型声明
void reverseArray(int arr[], int n);
int main() {
int n;
// 输入顺序表的长度
scanf("%d", &n);
// 定义顺序表
int arr[n];
// 输入顺序表的元素
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 输出原来的顺序表
for (int i = 0; i < n; i++) {
printf("%d", arr[i]);
if (i < n - 1) printf(" ");
}
printf("\n");
// 逆置顺序表
reverseArray(arr, n);
// 输出逆置后的顺序表
for (int i = 0; i < n; i++) {
printf("%d", arr[i]);
if (i < n - 1) printf(" ");
}
printf("\n");
return 0;
}
// 函数实现:逆置数组
void reverseArray(int arr[], int n) {
int left = 0;
int right = n - 1;
while (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}