1114:白细胞计数

//这个程序的最大问题是变量较多,容易出错,变量的类型范围初值要注意,最大最小值因为是double,所以不能用定义的一个整数来赋值,只能直接赋值

#include<iostream>

#include<cstdio>
using namespace std;
int main()
{
double a[310];
double ave,sum=0,sqd,sqd_max=-999999,max=-999999,min=999999;
int n,i,max_i,min_i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%lf",&a[i]);
if(a[i]>max) 
{
max=a[i];
max_i=i;
}
if(a[i]<min) 
{
min=a[i];
min_i=i;
}
sum+=a[i];
}
ave=(sum-max-min)/(n-2);
for(i=1;i<=n;i++)
{
if((i!=max_i)&&(i!=min_i))
{ if(a[i]>=ave) sqd=a[i]-ave;
else sqd=ave-a[i];
  
if(sqd>sqd_max) sqd_max=sqd;


}
}


printf("%.2lf %.2lf",ave,sqd_max);
return 0;
}

猜你喜欢

转载自blog.csdn.net/u010583225/article/details/80887287