【GESP】C++三级练习 luogu-t250431, 找元素
GESP三级练习,一维数组练习,难度★✮☆☆☆。
luogu-T250431 找元素
题目要求
题目描述
给出一个整数 $n$ ($1\le n \le 100$),以及 $n$ 个正整数,请输出 $x$ 最后一次出现的位置。
保证在这 $n$ 个正整数中一定有至少一个 $x$。
输入格式
第一行,输入一个整数 $n$
第二行,输入 $n$ 个整数,$a_1, a_2,\dots,a_n$
第三行,输入一个整数 $x$
输出格式
共一行,一个整数,表示整数 x 在序列中最后一次出现的位置。
样例输入 #1
1
2
3
5
1 2 3 2 1
2
样例输出 #1
1
4
样例输入 #2
1
2
3
8
8 7 6 5 4 3 2 1
1
样例输出 #2
1
8
提示
数据范围:$1\le n\le 100$,保证所有整数都在 int
范围内。
题目分析
本题的解题思路是通过遍历数组来找到最后一个出现的目标数x的位置。首先,我们需要读取输入的整数n和数组a中的元素。然后,我们从数组的末尾开始遍历,直到找到第一个等于x的元素,并输出其位置。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main() {
int n, x; // 定义变量n, x
cin >> n; // 读取输入的n
int a[n]; // 定义数组a,大小为n
for (int i = 0; i < n; i++) { // 循环读取n个整数到数组a
cin >> a[i];
}
cin >> x; // 读取输入的整数x
for (int i = n - 1; i >= 0; i--) { // 从数组a的末尾开始遍历,直到找到第一个等于x的元素
if (a[i] == x) {
cout << i + 1; // 输出找到的元素的位置
break; // 找到后跳出循环
}
}
return 0; // 返回0,表示程序正常结束
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页
“luogu-”系列题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
本文由作者按照 CC BY 4.0 进行授权