本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。 输入格式: 输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。 输出格式: 在一行中输出最大值及最大值的最小下标,中间用一个空格分开。 输入样例: 6 2 8 10 1 9 10 输出样例: 10 2
时间: 2023-05-31 14:19:58 浏览: 89
【PTA】求最大值及其下标
### 回答1:
以下是Python3代码实现:
n = int(input())
nums = list(map(int, input().split()))
max_num = max(nums)
max_index = nums.index(max_num)
print(max_num, max_index)
### 回答2:
题目描述
求一个数组中最大值及其下标。
输入格式
第一行一个数n,表示数组的长度 第二行n个数,表示数组
输出格式
一行输出最大值和下标,用空格隔开。
样例
输入样例:
6
1 3 5 7 9 4
输出样例:
9 4
题目分析
读入数组长度n及数组元素,顺序遍历数组,用最大值和下标分别记录当前最大值和对应下标,最后输出这两个记录即可。
算法1
C++ 代码
#include<bits/stdc++.h> //万能头
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int a[n],mx=-2000000000,mxi=0; //初始化记录当前最大值和其对应下标的最小值
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(mx<a[i]) //如果当前数比当前最大值还要大,就更新最大值和其下标
{
mx=a[i];
mxi=i;
}
}
printf("%d %d",mx,mxi); //输出当前最大值和其下标
return 0;
}
算法2
(暴力枚举) $O(n^2)$
//本算法不推荐
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
int a[100];
cin>>n;
int sum=0,max=-2000000000000,index=0;
//sum记录下标,max记录数组的最大值,index记录最大值对应的下标。
for(int i=0;i<n;++i)
{
cin>>a[i];
sum=i;
if(a[i]>max)
{
max=a[i];
index=sum;
}
}
cout<<max<<" "<<index<<endl;
return 0;
}
### 回答3:
题目描述
本题要求编写程序,找出给定的 n 个数中的最大值及其对应的最小下标(下标从 0 开始)。
输入格式
输入在第一行中给出一个正整数 n(1<n≤10)。第二行输入 n 个整数,用空格分开。
输出格式
在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
输入样例
6
2 8 10 1 9 10
输出样例
10 2
(中文翻译有误,应该是 “输出最大值及其对应下标”,英文的题目描述是“Find Maximum Value and Its Index”,而非“Find Minimum Value and Its Index”)
解题思路
这道题目最简单的方法就是找到最大值和最大值所在的下标,然后输出即可。但是,我们如果要实现一个通用的寻找最大值及其下标的算法,就需要遵循通用的思想:定义一个变量来表示最大值,并设定其初值为第一个数,然后依次遍历剩下的数,若遍历到的数比当前最大值大,则将其替换为最大值,并记录其下标。
可以用以下的代码来实现:
#include <stdio.h>
int main()
{
int n, i, a, max, index;
scanf("%d%d", &n, &max);
index = 0;
for (i = 1; i < n; i++) {
scanf("%d", &a);
if (a > max) {
max = a;
index = i;
}
}
printf("%d %d\n", max, index);
return 0;
}
上面的代码中,n 表示给出的数的个数,max 是当前最大值,index 是当前最大值所在的下标。首先读入第一个数作为 max,下标 index 设为 0(注意下标从 0 开始计算)。然后用 for 循环依次读入剩下的 n-1 个数,并用 if 语句判断是否需要更新 max 和 index 的值。最后输出 max 和 index 即可。
总结
本题涉及了基本的寻找最大值及其下标的算法,在编程时需要注意一些细节问题,如下标从 0 开始计算等。在实际编程中,我们要灵活运用 while 循环、for 循环等不同的控制结构,选择合适的变量名及数据类型,程序才会更加健壮、清晰、易读。
阅读全文