练习十第九题最大位置问题
题目如下:
输入n个整数, 存放在数组a[1]至a[n]中,输出最大数所在位置(n≤1000)。
输入描述:
第一行,数的个数n;
第二行,n个正整数,每个数在232−1之内。
输出描述:
最大数所在位置,当有多个相同的数,输出第一次出现的位置。
解决此问题,我们应该先输入几个元素,然后最重要的是进行数组最大的元素和元素位置进行初始化,代码如下:
int n;
cin >> n;
int *a = new int[n];
for(int i = 0;i < n;i++)
{
cin >> a[i];
}
int b = a[0];
int max_num = 0;
然后再对最大元素和最大元素的位置进行判断:
用for循环不断去遍历数组中的元素,如果a[i] > b;把这个位置赋给最大元素的位置,但输出时由于数组是以0为开始,需要+1
for(int i = 1;i < n;i++)
{
if(a[i] > b)
{
b = a[i];
max_num = i;
}
}
总代码如下:
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int *a = new int[n];
for(int i = 0;i < n;i++)
{
cin >> a[i];
}
int b = a[0];
int max_num = 0;
for(int i = 1;i < n;i++)
{
if(a[i] > b)
{
b = a[i];
max_num = i;
}
}
cout << max_num+1 << endl;
return 0;
}