题目:寻找数组中的最大元素位置
题目描述:
给定一个整数 n 和一个包含 n 个整数的数组,编写一个程序找到数组中最大元素的 1-based 索引位置并输出。
输入格式:
- 第一行包含一个整数 n (1 ≤ n ≤ 1000),表示数组的元素个数。
- 第二行包含 n 个整数,表示数组中的元素。每个整数的绝对值不超过 109109。
输出格式:
- 输出一个整数,表示数组中最大元素的 1-based 索引位置。
示例:
输入
5 3 1 4 1 5
输出
5
说明:
在上述示例中,数组为 [3, 1, 4, 1, 5],最大元素为 5,位于第 5 个位置(1-based 索引)。
代码如下:
#include<bits/stdc++.h>
using namespace std;
long long a[1005],n;
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
cout<<max_element(a,a+n)-a+1;
return 0;
}
该程序的功能是找出输入数组中的最大元素并输出其位置(1-based 索引)。
解读步骤:
-
库引入:
#include<bits/stdc++.h>
:引入 C++ 标准库的所有头文件。
-
变量声明:
long long a[1005]
:定义一个数组a
,可以存储最多 1005 个long long
类型的整数。long long n
:用于存储数组中元素的数量。
-
输入:
cin >> n
:读取用户输入的数组元素个数n
。for(int i=0;i<n;i++) cin >> a[i]
:使用循环读取n
个整数并存入数组a
。
-
查找最大元素:
cout << max_element(a, a+n) - a + 1
:max_element(a, a+n)
:返回指向数组a
中最大元素的指针。- a
:计算该指针与数组a
开头的指针之间的差值,即最大元素的索引(0-based)。+ 1
:将索引转换为 1-based 索引。
-
输出:
- 输出最大元素的位置。