數組-誰能出線-求最大值

【題】

誰能出線


背景:

電視臺舉辦“超級學生”才藝大賽,由於報名人數狂多,所以要先進行分組預賽。按規定,每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開始的。。。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章