/* 给出n个数,找出这n个数的最大值,最小值,和。
输入描述:
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输入样例:
5
1 3 -2 4 5
输出描述:
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
输出样例:
5
-2
11 */
//ps.只有你想不到,没有程序猿做不到
//我就只能弄出来这六个办法了,你们康康还有没有其他方法
//法一
#include<iostream>
#include<algorithm> //sort函数的头文件
using namespace std;
int main(){
int n;
cin>>n;
double a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n); //记住sort函数内的参数
cout<<a[n-1]<<endl; //记得数组最后一位对应的下标是n-1
cout<<a[0]<<endl; //数组第一个下标为0
double sum=0;
for(int i=0;i<n;i++){
sum+=a[i];
}
cout<<sum<<endl;
return 0;
}
//法二 这个只是我单独练一下用sort从大到小排序的方法
#include<iostream>
#include<algorithm>
bool cmp(int a,int b); //sort函数可以添加一个参数cmp就能从大到小排序
using namespace std;
int main(){
int n;
cin>>n;
double a[n],sum=0;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp); //记住sort函数内的参数
cout<<a[0]<<endl;
cout<<a[n-1]<<endl;
for(int i=0;i<n;i++){
sum+=a[i];
}
cout<<sum<<endl;
return 0;
}
bool cmp(int a,int b){ //很简单的cmp函数
return a>b; //字面意思从大到小,所以是a>b
}
//法三
#include<iostream>
using namespace std;
int main(){
int n,i=1; //这里另i=1,使得第一次while循环if条件句成立
double max,min,sum=0;
cin>>n;
while(n--){
double num;
cin>>num;
if(i){ //妙啊,只有第一次循环输入时才会直接对max和min赋值
max=num;
min=num;
}
sum+=num;
if(num>max) max=num;
if(num<min) min=num;
i=0; //记得一定要在这里置0
}
cout<<max<<endl;
cout<<min<<endl;
cout<<sum<<endl;
return 0;
}
//法四 类似法三,就是改用数组
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
double a[n],max,min,sum=0;
for(int i=0;i<n;i++){
cin>>a[i];
if(i==0){ //赋初值(初次给max,min赋值)
max=a[i];
min=a[i];
}
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
sum+=a[i];
}
cout<<max<<endl<<min<<endl<<sum<<endl;
return 0;
}
//法五 将第一次输入数据单独划分出来
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
double num,max,min,sum; //记得这里sum千万不要再赋初值0了
cin>>num;
max=min=sum=num; //要在这里将第一次输入的num一起赋给sum,不然求和会漏掉第一个num
for(int i=1;i<n;i++){
cin>>num;
if(num>max) max=num;
if(num<min) min=num;
sum+=num;
}
cout<<max<<endl<<min<<endl<<sum<<endl;
return 0;
}
//法六 将极限值赋给初值
#include<iostream>
#include<climits> //利用极限值
using namespace std;
int main(){
int n;
cin>>n;
double max=INT_MIN; //输入的所有数都要大于等于INT_MIN,所以可以将max的初值设为INT_MIN
double min=INT_MAX; //同理
double num,sum=0;
while(n--){
cin>>num;
if(num>max) max=num;
if(num<min) min=num;
sum+=num;
}
cout<<max<<endl<<min<<endl<<sum<<endl;
return 0;
}