1. 程式人生 > >C程式設計——從鍵盤輸入多個數據,並輸出其中第二大的資料

C程式設計——從鍵盤輸入多個數據,並輸出其中第二大的資料

1、注:第二大數小於最大數
2、程式

#include <stdio.h>

int getmax2(int *,int);
	
int main()
{	
	int a[99] = {0};
	int count = 0;
	
	printf ("Please input numbers:");
	
	do{
		scanf ("%d",&a[count]);
		count++;
	}while( getchar() != '\n');//換行前,從鍵盤獲取資料
	
	printf ("Max2 = %d\n",getmax2(a,count));
	
	return 0;
}

int getmax2(int *array,int len)
{
	int i;
	int max1 = array[0];
	int max2 = 0;
	
	if (NULL == array || len <= 0 || array[0] == array[1])//第二大值必須小於最大值
	{
		return -1;
	}
	
	for (i = 1; i < len; i++)
	{
		if (len == 2)//如果只輸入兩個數時,需另行判斷
		{
			if (array[0] < array[1])
			{
				max2 = array[0];
			}
			else
			{
				max2 = array[1];
			}
			break;
		}
		
		if (array[i] > max1)//array[i]>最大值為max1時
		{
			max2 = max1;//在最大值存入max1前,將原最大值存入max2
			max1 = array[i];
		}
		else
		{
			if (array[i] > max2 && array[i] < max1)//若第二大值等於max1,則捨棄
			{
				max2 = array[i];
			}
		}
		
	}
	return max2;
}

3、結果
Please input numbers:1 2 33 44 2 4 44 55 77 77 55
Max2 = 55