8 条题解
-
1
#include <iostream> #include <vector> #include <algorithm> using namespace std; vector<int> reverseOrder(const vector<int>& nums) { vector<int> reversed = nums; reverse(reversed.begin(), reversed.end()); return reversed; } int main() { int T; cin >> T; for (int i = 0; i < T; i++) { int n; cin >> n; vector<int> nums(n); for (int j = 0; j < n; j++) { cin >> nums[j]; } vector<int> reversed = reverseOrder(nums); for (int j = 0; j < n; j++) { cout << reversed[j] << " "; } cout << endl; } return 0; } ```记得点赞哦~
-
1
题目分析:
面对有多组测试数据的题目,我们可以采用函数求解。
本题中,因为要求反向输出,所以我采取了
STL
中的 栈stack
来处理数据。当然你可以使用数组,但我的用意是借此机会来了解一下 什么是栈:栈(即
LIFO
表),是一种后进先出(Last In First Out)的数据结构。这意味着最后进入栈中的元素将会是第一个被取出的元素。栈可以类比为一堆盘子,放盘子和拿盘子都要从上面。栈的基本操作包括:
push()
:向栈顶添加一个元素。pop()
:从栈顶移除一个元素。top()
:获取栈顶元素但不移除。empty()
:检查栈是否为空。size()
:返回栈中元素的数量。
以下是使用栈的基本示例:
#include <cstdio> #include <stack> std::stack<int> s; int main() { // 入栈 s.push(1); s.push(2); s.push(3); // 出栈 while (!s.empty()) { printf("%d ",s.top()); s.pop(); } return 0; }
输出结果是
3 2 1
。代码实现:
#include<cstdio> #include<stack> std:: stack<int> s; int T,n,t; void d(void){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&t); s.push(t); }while(!s.empty()){ printf("%d ",s.top()); s.pop(); } printf("\n"); }int main(){ scanf("%d",&T); while(T--)d(); return 0; }
记得给五星好评哦喵~ 谢谢客官啦~
-
-1
#include #include
using namespace std;
int main() { int T; cin >> T; // 读取测试数据组数
while (T--) { int n; cin >> n; // 读取数组长度 vector<int> arr(n); // 使用vector动态数组 // 读取数组元素 for (int i = 0; i < n; ++i) { cin >> arr[i]; } // 逆序输出数组元素 for (int i = n - 1; i >= 0; --i) { cout << arr[i] << (i > 0 ? " " : "\n"); // 每个元素后输出空格,最后一个元素后输出换行符 } } return 0;
}
- 1
信息
- ID
- 2073
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 290
- 已通过
- 105
- 上传者