/*******************************************************************************/
/* 2014.06.28 S_Nakka                                                          */
/*              0001：List of Top 3 Hills                                      */
/* take1:新規作成                                                              */
/* take2:scanfの変数側に&を追加                                                */
/*******************************************************************************/

#include <stdio.h>

int main()
{
	int mountain[10];                                      /* 山の高さ格納用   */
	int count=0;                                           /* while文ループ用  */
	int loop =0;                                           /* for文ループ用    */
	int first=0;                                           /* 1番目に高い山    */
	int second=0;                                          /* 2番目に高い山    */
	int third=0;                                           /* 3番目に高い山    */

	/***************************************************************************/
	/* ♪山の高さを10個入力するまで脱出できま10のコーナー♪                    */
	/* 山の高さを10個入力せなあかん。ちなみに高さは0〜10000の間にしてね☆      */
	/***************************************************************************/
    while(count<10)
	{
		/***********************************************************************/
		/* 山の高さを入力しなくちゃ(使命感)                                    */
		/***********************************************************************/
		printf("山の高さ%dを入力させさせなさせ",count+1);
		/***********************************************************************/
		/* take2修正:入力したい変数には&で参照しないと止まります               */
		/***********************************************************************/
		scanf("%d",&mountain[count]);

		/***********************************************************************/
		/* 山の高さを厳しくチェック                                            */
		/***********************************************************************/
		if(mountain[count]>=0&&mountain[count]<=10000)
		{
			count++;                        /*山認定されたので次の入力へ 　　　*/
		}
		else
		{
			printf("高さ%dだったら山じゃないだろ！いい加減にしろ！！\n"
				,mountain[count]);
		                                   /*山の高さがおかしくて文句言われた  */
		}
	}

	/*山の高さ格付けランキングはっじまるよー                                   */
    for(loop=0; loop<10; loop++)
	{
		if(mountain[loop]>first)           /* なんと暫定1位を超えた猛者がいた！*/
		{
			third  = second;               /* 2位を3位にずり落とす             */
			second = first;                /* 1位を2位にずり落とす             */
			first  = mountain[loop];       /* 1位に新記録の山の高さを更新！イエー */
		}
		else if(mountain[loop]>second)     /* 暫定2位より高い場合              */
		{
			third  = second;               /* 2位を3位にずり落とす             */ 
			second = mountain[loop];       /* 2位の所の山の高さを更新！ヨッシャー   */
		}
		else if(mountain[loop]>third)      /* 暫定3位より高い場合              */
		{
			third  = mountain[loop];       /* 3位の所の山の高さを更新！ウェーイ    */
		}
		else                               /* ベスト3に入らなかった平凡な山    */
		{
			;                              /* NOP！ランキングに入れてやんない！*/
		}
	}

	printf("%d\n",first);                  /* 1番目に高い山を出力しまうす      */
	printf("%d\n",second);                 /* 2番目に高い山を出力しまうす      */
	printf("%d\n",third);                  /* 3番目に高い山を出力しまうす      */

	return 0;
}