题目描述
上机练习5.1.4 将一个数组中的所有元素倒序存放,然后输出。
【分析】A[1]←→A[N] A[2] ←→A[N-1]…… A[I] ←→A[J]
i 从1开始,每交换1次,i 加1;直到 i = N DIV 2
提示:本题结果操作与教材例题5.1一样,我们目前是练习数组基本操作,希望大家能按照分析中方法将数组元素倒序再输出,不要直接逆序输出。
输入
一行,n个用空格分隔的整数,1≤n≤100。
输出
按输入时的逆序输出n个整数。
样例输入
复制
1 2 3 4 5 6 7 8 9 10
样例输出
复制
10 9 8 7 6 5 4 3 2 1
#include <iostream>
#include <vector>
int main() {
std::vector<int> arr;
int n, element;
// 输入数组元素
while (std::cin >> element) {
arr.push_back(element);
if (std::cin.get() == '\n')
break; // 读取到换行符为止
}
n = arr.size();
// 倒序交换数组元素
for (int i = 0; i < n / 2; ++i) {
std::swap(arr[i], arr[n - i - 1]);
}
// 输出倒序后的数组元素
for (int i = 0; i < n; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
还可以是这个:(只针对本题)
#include <iostream>
#include <cmath>
#include <stdio.h>
using namespace std;
#define N 10005
int a[N];
int main() {
int n;
cin >> n;
for (int i = 0; i < 9; i++) {
cin >> a[i];
}
for (int i = 9 - 1; i >= 0; i--) {
cout << a[i] << " ";
}
cout << n << endl;
return 0;
}