杨嘉琪


私信TA

用户名:dotcpp0664564

访问量:1443

签 名:

等  级
排  名 657
经  验 4028
参赛次数 1
文章发表 21
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

1755: 姓名排序
浏览:22

解题思路:

输入--冒泡排序--去除两边求和并求平均值--求绝对值--求绝对值的最大值--输出

注意事项:
double 类型用fabs


参考代码:

#include<stdio.h> 

#include<math.h>

double a[500],b[500];

int main()

{

int n;

int i,j;

scanf("%d",&n);

for(i=0;i<n;i++){

scanf("%lf",&a[i]);

}

double t=0;

//找出最大值和最小值 

for(i=0;i<n-1;i++){

for(j=0;j<n-i-1;j++) {

if(a[j]>a[j+1]){

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

// for(i=0;i<n;i++){

// printf("%.2f ",a[i]);

// }

// printf("\n");

double sum=0.,avg;

//不遍历两边 

for(i=1;i<n-1;i++){

sum+=a[i];

}

avg=sum/(n-2)*1.0;

// printf("%.2f %.2f\n",sum,avg);

// printf("%d\n" ,j);

//记录误差绝对值

for(i=1;i<=n-1;i++){

b[i]=fabs(a[i]-avg);

}

// printf("\n");

// for(i=1;i<n-1;i++){

// printf("%.2f ",b[i]);

// }

double max=b[1];

//求误差的最大值

for(i=1;i<n-1;i++){

if(max<b[i]){

max=b[i];

}

}

printf("%.2f %.2f",avg,max);

}


 

0.0分

0 人评分

  评论区

  • «
  • »