#C02L02P04. C02.L02.一维数组最值问题.知识点2.求最大值出现的位置

C02.L02.一维数组最值问题.知识点2.求最大值出现的位置

从键盘读入n(1<=n<=100)个互不相同的正整数,问第几个数是最大值。

算法分析

  1. 假设一个最大值 maxx=0,并定义一个变量 pos 记录最大值下标;

  2. maxx 依次跟数组中的元素进行比较;

  3. 如果该数组元素大于 maxx,则将该数组元素值赋值给 maxx ,同时将该元素的下标值赋值给 pos ;

  4. pos 即为该数组中的最大值的下标。

参考代码

#include<bits/stdc++.h>
using namespace std;
int n,a[105];
int maxx=0,pos;//maxx初始值要比任一数组元素的值小
int main()
{
	cin>>n; //读入数组元素个数

	for(int i=1;i<=n;i++) //数组赋值
		cin>>a[i];

	for(int i=1;i<=n;i++)  //数组元素依序跟maxx比较
		if(a[i]>maxx) maxx=a[i],pos=i; //记录最大值跟最大值的下标
			cout<<pos; //将最大值下标输出

	return 0;
}