【题】
谁能出线
背景:
电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。
输入:
按顺序给出一个小组10个人的最后得分(int)。
输出:
能够出线的学生序号(0~9)。
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示
| 以文本方式显示
| 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开始的。。。