题目描述
任意给定 n 个整数,求这 n 个整数序列的和、最小值、最大值
输入描述
输入一个整数n,代表接下来输入整数个数,0 < n <= 100,接着输入n个整数,整数用int表示即可。
输出描述
输出整数序列的和、最小值、最大值。用空格隔开,占一行
思路:
因为只需要最大最小值,所以不需要全部排序,也不需要储存,先设maxi,mini变量,初始值都等于第一个数,每次cin>>x求和后 maxi=max(maxi,x); mini=min(mini,x);
写法1:
#include <iostream>
using namespace std;
int main()
{
int n,min = 0,max = 0,sum = 0,a;
cin >>n;
cin >> a;
min = a;
max = a;
sum = a;
for(int i =2;i <= n; i++)
{
cin >>a;
sum += a;
if (a < min)
{
min = a;
}
else if (a > max)
{
max = a;
}
}
cout << sum << " " << min << " " << max;
return 0;
}
写法2:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,mini = 0, maxi = 0,sum = 0,x,i;
cin >> n;
cin >> x;
mini = x;
maxi = x;
sum = x;
for (i = 2; i <= n;i++)
{
cin >> x;
sum += x;
maxi = max(maxi,x);
mini = min(mini,x);
}
cout << sum << " " << mini << " " << maxi;
return 0;
}