文章

【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 进行授权