配列の要素 a[i] と a[(N-1)-i] を入れ替えるという処理をN/2回繰り返すという方針で実装する。
※ N は配列の要素数
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int a[110];
for (int i = 0; i < N; ++i) {
cin >> a[i];
}
int tmp;
for (int i = 0; i < N/2; ++i) {
tmp = a[i];
a[i] = a[(N-1)-i];
a[(N-1)-i] = tmp;
}
for (int i = 0; i < N; ++i) {
cout << a[i] << ' ';
}
cout << endl;
return 0;
}
例えば、
5
1 2 3 4 5
を入力すると
5 4 3 2 1
が出力される。
※入力の最初の1回は配列の要素数を入力する。
swap()関数を用いると、次のように書ける。
#include <iostream>
#include <utility>
using namespace std;
int main() {
int N;
cin >> N;
int a[N];
for (int i = 0; i < N; ++i) {
cin >> a[i];
}
for (int i = 0; i < N/2; ++i) {
swap(a[i], a[(N-1)-i]);
}
for (int i = 0; i < N; ++i) {
cout << a[i] << ' ';
}
cout << endl;
return 0;
}
reverse()関数を用いると、次のようにも書ける。
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int N;
cin >> N;
int a[N];
for (int i = 0; i < N; ++i) {
cin >> a[i];
}
reverse(a,a+N);
for (int i = 0; i < N; ++i) {
cout << a[i] << ' ';
}
cout << endl;
return 0;
}