5.1-4.数组逆序重【1.6编程基础之一维数组04】

4.数组逆序重【1.6编程基础之一维数组04】
将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。
输入:
输入为两行:第一行数组中元素的个数n(1<n<100),第二行是n个整数,每两个整数之间用空格分隔。
输出:
输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。
样例输入:
5
8 6 5 4 1
样例输出:
1 4 5 6 8

#include<iostream>
using namespace std;
int n,t,a[101];
int main()</
实现数组逆序存放有多种方法,以下为几种常见实现方式: ### 使用 `reverse` 函数(C++) 可利用 C++ 标准库中的 `reverse` 函数来实现数组逆序。该函数能直接将数组元素反转,代码如下: ```cpp #include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll n; cin >> n; vector<ll> a(n); for(ll i = 0; i < n; i++) { cin >> a[i]; } reverse(a.begin(), a.end()); for(auto &t : a) cout << t << " "; return 0; } ``` 此代码首先读取数组元素个数 `n`,接着读取 `n` 个元素存入 `vector` 容器 `a` 中,再使用 `reverse` 函数将 `a` 中的元素逆序,最后输出逆序后的元素[^1]。 ### 双指针交换法(C) 借助双指针,一个指针指向数组开头,另一个指向数组末尾,交换两个指针所指元素,然后将指针向中间移动,直至两个指针相遇,代码如下: ```c #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #define M 10 int main() { int a[M], m, n, temp; for (m = 0; m < M; m++) scanf("%d", &a[m]); m = 0; n = M - 1; while (m < n) { temp = a[m]; a[m] = a[n]; a[n] = temp; m++; n--; } for (m = 0; m < M; m++) printf("%d ", a[m]); return 0; } ``` 该代码先读取数组元素,接着使用双指针 `m` 和 `n` 分别指向数组首尾,交换元素并移动指针,最后输出逆序后的数组元素[^2]。 ### 倒序输出法(C) 直接从数组末尾开始遍历,依次输出元素,实现逆序效果,代码如下: ```c #include<cstdio> int a[101]; int main() { int x; scanf("%d", &x); for(int i = 0; i < x; ++i) { scanf("%d", &a[i]); } for(int j = x - 1; j >= 0; --j) printf("%d ", a[j]); return 0; } ``` 此代码先读取数组长度和元素,再通过倒序循环输出数组元素,达到逆序存放的目的[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值