解法一:视频解析
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e4+9; //数组开大一点
int a[N];//定义一个数组
int main()
{
int n;cin>>n;
int i;
for(i=0;i<n;i++)
{
cin>>a[i];
}
cout<<*max_element(a,a+n)<<"\n"; //“ * ”解引用符号
cout<<*min_element(a,a+n)<<"\n"; //*max_element(a,a+n);
ll sum=0;//求和变量的初始化
for(i=0;i<n;i++)
{
sum+=a[i];
}
cout<<fixed<<setprecision(2)<<1.0*sum/n<<"\n";
return 0 ;
}
解法二:官方题解
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e4+9;
int a[N];
int main()
{
ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);
int n;cin>>n;
int i;
ll sum=0;
for(i=0;i<n;i++)
{
cin>>a[i];
sum+=a[i]; //优点
}
cout<<*max_element(a,a+n)<<"\n";
cout<<*min_element(a,a+n)<<"\n";
cout<<fixed<<setprecision(2)<<1.0*sum/n<<"\n";
return 0;
}
/*
在思路上和视频讲解一致,但是这个题解在输入数组的时候就已经将得到了
sum的值,不需要再进行for循环来获得。简洁美观
*/
解法三:手动求值
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e4+9;
int a[N];
int main()
{
ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);
int n;cin>>n;
int i,sum=0;
for(i=0;i<n;i++)
{
cin>>a[i];
sum+=a[i];
}
int mx=mi=a[0]; //连续赋值,相同的变量类型且需要相同的值;
for(i=0;i<n;i++)
{
mx=max(mx,a[i]);
mi=min(mi,a[i]);
}
cout<<mx<<"\n";
cout<<mi<<"\n";
cout<<fixed<<setprecision(2)<<1.0*sum/n<<"\n";
return 0;
}
/*
思路:
假设一个最大值然后不断的比较,判断当前读取的值与给定最值的关系。
只不过这里的判断函数用的是max
*/