题目:求最大值及其下标。
要求:找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。
输入格式:
输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。
输出格式:
在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
输入样例:
6 |
---|
2 8 10 1 9 10 |
输出样例:
10 2 |
---|
思路一:由于题目中要求的时输入n个正整数,数量不确定,故可以考虑数组来存储不确定个数的变量;
- 先定义数组(其数组长度取最大值,题目要求为10),然后通过for循环给数组一个个赋值,即可得到一个数组;
- 找数组的最大值,这一步是最关键的一步,由于所输入的值不确定那个是最大值,故可以先设置另一个一个变量(index)来存储最大值变量的下标,紧接着继续在数组里for循环,逐一跟下标为index的值相比较,如果比下标为index的值大,这时候就将两者中数值大的下标赋值给index;
- 按要求输出。
- 代码多用为C语言。
代码如下
#include<stdio.h>
int main(){
int a[11], n, i, index;
scanf("%d", &n);
for(i = 0; i < n; i++){ //将输入数依次赋给数组a的n个元素;
scanf("%d", &a[i]);
}
index = 0; //假设a[0]为最大值,index存储最大值下标;
for(i = 1; i < n; i++){
if(a[i] > a[index]){ //如果a[i]比假设的的最大值还大,
index = i; //再假设a[i]是新的最大值;
}
}
printf("%d %d", a[index], index);//打印出最大值以及最大值对应的下标
return 0;
}