考点重复,这里介绍一种新的处理方法,以前用找最值时用排序加结构体记录数据位置,用数组记录一串数据使用,西卡西,我们只是找最值,就可以打擂台处理,加上位置就行,还有,我们发现数组没有发挥实际的作用,其实只需要一个变量,一个循环就行,读入之后,就加和打擂台,再更新数据,同样可以达到目的,这样处理时间和空间复杂度都会降低很多。
#include<bits/stdc++.h>//万能头
int main()
{
int n;
scanf("%d",&n);
int num;//数据
int max=-1;//最大值
int pmax;//最大值位置
int pmin;//最小值位置
int min=1000000;//最小值
int sum=0;//和
for(int i=0;i<n;i++){
scanf("%d",&num);//不断更新数据
sum+=num;//累加
if(num>max){
max=num;
pmax=i+1;
}//打擂台最大值
if(num<min){
min=num;
pmin=i+1;
}//打擂台最小值
}
printf("%d %d %d %d %d ",sum,max,pmax,min,pmin);
return 0;
}
简单题,考点重复