C++練習:輸入至少兩個整數求最大值和第二大值解析

題目要求:輸入至少兩個整數,求最大值和第二大值

思路:先定義兩個變量max1和max2分別記錄最大值和第二大值,再定義個變量定義輸入計數,是第幾個數字輸入了

如果輸入第一個數字,直接將它記錄爲最大值

如果輸入第二個數字,先與第一個數字比較,如果大於第一個,則將其記錄爲最大值,第一個數字記錄爲次大值;如果小於第一個,直接將其記錄爲次大值

以上,最大值和次大值的初始值都有了,後邊輸入第三個以上的數字,同樣的道理,如果比最大值大,則記錄爲最大值,之前的最大值記錄爲次大值;如果比最大值小比次大值大,則記錄爲第二大值,如果比前邊兩個值都小,直接丟棄。

按照以上思路,整體代碼如下:

#include
using namespace std;

int main()
{
int max1=0,max2=0,time=0,n=0;

while(scanf("%d",&n)!=EOF)//輸入完畢後ctrl+z然後回車,結束循環 
{
	++time;
	if(time==1)
	{
		max1=n;
	}
	else if(time==2)
	{
		if(n>max1)
		{
			max2=max1;//順序不能顛倒,否則max1和max2的值相同了 
			max1=n;
		}
		else
		{
			max2=n;
		}
	}
	else
	{
		if(n>=max1)
		{
			max2=max1;//順序不能顛倒,否則max1和max2的值相同了,先將最大值保 存爲次大值,後將新值保存爲最大值 
			max1=n;
		}
		else if(n>max2)
		{
			max2=n;
		}
	}
} 

printf("%d,%d",max1,max2);

return 0;

}

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