问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5 1 3 -2 4 5
Data
样例输出
5 -2 11
Data
数据规模和约定
1 <= n <= 10000。
#include <bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
vector<int> arr(a);
for (int i = 0; i < a; ++i) {
cin>>arr[i];
}
auto m=max_element(arr.begin(),arr.end());
int max=*m;
cout<<max<<endl;
auto n= min_element(arr.begin(),arr.end());
int min=*n;
cout<<min<<endl;
int sum= accumulate(arr.begin(),arr.end(),0);
cout<<sum;
return 0;
}
当然还是老问题,测试系统编译器版本比较老,不能用
那就用简单的三个循环解决
#include <bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
vector<int> arr(a);
for (int i = 0; i < a; ++i) {
cin>>arr[i];
}
int m=arr[0];
for (int i = 0; i < a; ++i) {
if (arr[i]>m){
m=arr[i];
}
}
cout<<m<<endl;
for (int i = 0; i < a; ++i) {
if (arr[i]<m){
m=arr[i];
}
}
cout<<m<<endl;
int k=arr[0];
for (int i = 1; i < a; ++i) {
k=k+arr[i];
}
cout<<k<<endl;
return 0;
}
标签:arr,数列,int,个数,cin,蓝桥,++,第二行,试题
From: https://blog.csdn.net/m0_71041937/article/details/137150740