1. 程式人生 > >BASIC-3 數列特徵

BASIC-3 數列特徵

題目
問題描述
給出n個數,找出這n個數的最大值,最小值以及它們的和。

輸入格式
第一行為整數n,表示數的個數。

第二行有n個數,且給定的n個數,每個數的絕對值都小於10000。

輸出格式
輸出三行,每行有一個整數。第一行表示這些數中的最大值,第二行表示這些數中的最小值,第三行表示這些數的和。
樣例輸入

5
1 3 -2 4 5

樣例輸出

5
-2
11

資料規模與約定

1 <= n <= 10000

題解(一)
起始設定比輸入值最小還小的最大值,設定比輸入值最大值還大的最小值,初始化和為0,對於每個輸入,判斷是否比最大值大,是否比最小值小,累加.

#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
	const int MAX = 1000;
	int n, max = -MAX, min = MAX, number, sum = 0;
	cout << "請輸入幾個數:";
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> number;
		max = number > max ? number : max;
		min = number < min ? number : min;
		sum = sum + number;
	}
	cout << max << " " << min << endl << sum << endl;
	return 0;
}

題解(二)
起始設定比輸入值最小還小的最大值,設定比輸入值最大值還大的最小值,初始化和為0,對於每個輸入,判斷是否比最大值大,是否比最小值小,累加.

#include<iostream>
using namespace std;
int main(){
	int n;
	int val;
	int max = -10001;
	int min = 10001;
	int sum = 0;
	cin>>n;
	while(n--){
		cin>>val;
		if(val < min)
			min = val;
		if(val > max)
			max = val;
		sum += val;
	}
	cout<<max<<endl;
	cout<<min<<endl;
	cout<<sum<<endl;
	return 0;
}