数组-谁能出线-求最大值

【题】

谁能出线


背景:

电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。

输入:
        按顺序给出一个小组10个人的最后得分(int)。

输出:
        能够出线的学生序号(0~9)。

  测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示
  1. 98↵
  2. 98↵
  3. 100↵
  4. 97↵
  5. 95↵
  6. 94↵
  7. 90↵
  8. 94↵
  9. 93↵
  10. 92↵
以文本方式显示
  1. 2↵
1秒 64M 0
测试用例 2 以文本方式显示
  1. 98↵
  2. 98↵
  3. 99↵
  4. 97↵
  5. 95↵
  6. 99↵
  7. 90↵
  8. 94↵
  9. 93↵
  10. 92↵
以文本方式显示
  1. 2↵
  2. 5↵
1秒 64M 0

【分析】
很显然,这是利用数组求最大值。
这里给出如何求一组数的最大值。

#include "stdio.h"  
int main() 
{         
	int i;         
	int max = 0;      //最大的数。这里max初始赋值为0,,其实是不严密的,应该赋值为一个极小值。因为数组中都是正数,所以max=0在这里不会出现问题。  
	
	int array[10] = {1, 3, 5, 2, 6, 8, 11, 21, 17, 6};         

	for(i = 0; i < 10; i++)         
	{                 
		if(array[i] > max)      // 如果array[i]比max大,则更新max的值,使其永远存最大值                 
		{                         
			max = array[i];                 
		}         
	} 
	
	printf("%d\n", max);
	
	return 0;  
}



【代码】

当数组中有多个最大值,怎么输出最大值的角标??
再做一个循环,用刚才找到的最大值去依次匹配数组中的值,如果相同,则输出角标。
注意,数组角标是从0开始的。。。




  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值