本题就是给出n个数,求出这n个数的最大值,最小值和平均值
前两个量可以在输入时维护,而平均值可以通过维护这n个数的总和在除以n即可,代码如下:
#include <bits/stdc++.h>
using namespace std;
int n , a[10005] , maxn , minn = 1e9 , sum;
//maxn为最大值,minn为最小值要先把它赋值为最大值,sum为总和
int main(){
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
maxn = max(maxn , a[i]);
minn = min(minn , a[i]);
sum += a[i];
}
printf("%d\n%d\n%.2lf" , maxn , minn , sum * 1. / n);
//sum乘上1.可以将int变double,除以n后为平均值
return 0;
}
而a[i]是临时的,下一个循环不会用到,所以可以把它变成变量a,简化空间复杂度(说实话没啥用)。
#include <bits/stdc++.h>
using namespace std;
int n , a , maxn , minn = 1e9 , sum;
//maxn,minn,sum与上相同,只不过吧数组a改为变量a
int main(){
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a;
maxn = max(maxn , a);
minn = min(minn , a);
sum += a;
//把a[i]改为a
}
printf("%d\n%d\n%.2lf" , maxn , minn , sum * 1. / n);
return 0;
}
AC Code:
#include <bits/stdc++.h>
using namespace std;
int n , a , maxn , minn = 1e9 , sum;
int main(){
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a;
maxn = max(maxn , a);
minn = min(minn , a);
sum += a;
}
printf("%d\n%d\n%.2lf" , maxn , minn , sum * 1. / n);
return 0;
}