蓝桥杯——寻找数组中的最大值

问题描述

  对于给定整数数组a[],寻找其中最大值,并返回下标。

输入格式

  整数数组a[],数组元素个数小于1等于100。输入数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。

输出格式

  输出最大值,及其下标

样例输入

3

3 2 1

样例输出

3 0

答案:

  

#include <stdio.h>

#include <string.h>

int main(int argc, const char * argv[]) {

int n;

scanf("%d",&n);

//输入数据

int a[n];

int i;

for (i = 0;i < n;++i) {

scanf("%d",&a[i]);

}

//确定最大值

int max = a[0];

for (i = 1; i <n;i ++) {

if (max <a[i]) {

max = a[i];

}

}

//输入数组中的最大值和相应索引

printf("%d ",max);

for (i = 0; i < n; i ++) {

if (max == a[i]) {

printf("%d",i);

}

}

return 0;

}

时间: 2024-10-09 20:07:39

蓝桥杯——寻找数组中的最大值的相关文章

第2章 数字之魅——寻找数组中的最大值和最小值

寻找数组中的最大值和最小值 问题描述 对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢? 分析与解法 [解法一] 可以把寻找数组中的最大值和最小值看成是两个独立的问题,我们只要分别求出数组的最大值和最小值即可解决问题.最直接的做法是先扫描一遍数组,找出最大的数以及最小的数.这样,我们需要比较2*(N-1)次才能找出最大的数和最小的数.代码如下: 1 package chapter2shuzizhimei.findminmax; 2 /** 3 * 寻找数组中的最大值和最小

编程之美3:寻找数组中的最大值和最小值以及最大值和次大值

很开心,这是今天的第三篇文章啦!下午健身也感觉非常过瘾,托付宿舍妹子从日本代购的护肤品也到了.耳边漂浮着Hebe田馥甄的<魔鬼中的天使>文艺的声线,一切都好棒,O(∩_∩)O哈哈~.爱生活,爱音乐,爱运动,额,当然还有要爱学习啦!加油(^ω^) 额,扯远了.第三篇是关于寻找数组中的最大值和最小值.第一次看到这个题目的时候,楼主稍微鄙视了一下,因为觉得这个题目有什么好做的.但是楼主还是看了看<编程之美>上的写的,发现还是有必要记录一下,不一样的思考方式.很赞!大家和楼主一起哦,Are

数据结构——算法之(041)(寻找数组中的最大值和最小值)

[申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出. 联系邮箱:[email protected]] 题目: 寻找数组中的最大值和最小值 题目分析: 1.时间复杂度0(1) 算法实现: #include <stdio.h> void get_array_max_and_min(int *array, int array_size, int *max, int *min) { if(array_size < 1) *max = *min = 0; else if(array_si

2.10 用最少次数寻找数组中的最大值和最小值[find min max of array]

[本文链接] http://www.cnblogs.com/hellogiser/p/find-min-max-of-array.html [题目] 对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢? [分析] 1. 遍历两次数组,分别找出最大值和最小值,需要进行 2N 次比较. 2. 将数组中的元素分组,按顺序将数组中相邻的两个数分在同一组,用Max和Min来存储最大值和最小值.同一组比较完之后,较小的数与当前的最小值比较,如该数小于当前最小值,更新Min:较大的数与当

编程之美2.10 寻找数组中的最大值和最小值

这个问题其实很容易解决,就是循环遍历一遍数组,然后找到数组中存在的最大值和最小值就可以了,书中主要讨论的问题是比较次数较小的方法,不过,书中已经证明了,无论用什么方法最少的比较次数也就是循环遍历一遍的比较,结果是O(1.5N)的,所以,很容易的可以解决这个问题. 第一种方法: 函数声明: void DutFindMaxAndMinInArray_1(int*, int, int&, int&); 源代码如下: /*基本的解法寻找最大值和最小值*/ bool _DutFindMaxAndMi

寻找数组中的最大值最小值

解法一: 分别求出数组中的最大值和最小值.先扫描一遍数组,找出最大的数和最小的数.需要比较2*N次. 解法二: 一般情况下,最大值和最小值不相同.所以把数组分成两部分,然后再从这两部分中分别找出最大值和最小值. 最后,从奇偶数位上分别求出Max=9,Min=3,各需要比较N/2次,整个算法共需要比较1.5*N次. 解法三: 解法二破坏了数组,如果在遍历过程中进行比较,而不需要交换元素,就可以不破坏数组了.首先仍然按顺序将数组中相邻的两个数分在同一组(概念上的分组),然后利用两个变量Max,和Mi

算法练习6:寻找数组中的最大值算法

请分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新的数组. 提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素. function largestOfFour(arr) { var l=new Array(arr.length); for(i=0;i<arr.length;i++){ l[i]=arr[i][0]; for(j=0;j<arr[i].length;j++){ if(arr[i][j]>l[i]){ l[i]=arr[i][j];

【编程之美】寻找数组中的最大值和最小值

数组是最简单的一种数据结构.我们经常碰到的一个基本问题,就是寻找整个数组中最大的数,或者最小的数.这时,我们都会扫描一遍数组,把最大(最小)的数找出来.如果我们需要同时找出最大和最小的数呢? 对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢? 分析与解法 解法一:分别求最大和最小值 可以分别求出数组的最大值和最小值,这样,我们需要比较2N次才能求解. 解法二:分组求解 (1) 按顺序将数组中相邻的两个数分在同一组: (2) 比较同一组的两个数,将大的数放在偶数位上,小的放

数字之魅:寻找数组中的最大值和最小值

数组是最简单的一种数据结构.我们经常碰到的一个基本问题,就是寻找整个数组中最大的数,或者最小的数.这时,我们都会扫描一遍数组,把最大(最小)的数找出来.如果我们需要同时找出最大和最小的数呢? 对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢? 这个题目比价简单,主要方案如下: 方案一:分别求最大和最小值.这是一种比较常规的解法.可以分别求出数组的最大值和最小值,这样,我们可以采用最基本的冒泡思想遍历两次(2N)就能求解. 方案二:分组求解.由于前面的需要遍历2N次.这里为