1001
来源:互联网 发布:淘宝杯子宝贝卖点范文 编辑:程序博客网 时间:2024/03/29 19:48
代码写的很挫,需要处理的特殊情况是分数最小的包括id最小的时候,要保留id最小的。我按照分数从大到小排序,分数相等时按照id从小到大排序,这样,可能出错的是a[0]和a[1],当两者的pi相等时,需要交换一下两者的位置。
#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<math.h>using namespace std;int n;struct Node{ int id; double pi;};int cmp1(Node n1,Node n2){ if(n1.pi!=n2.pi) return n1.pi>n2.pi; else return n1.id<n2.id;}Node a[25];int main(){while(scanf("%d",&n)&&n){ int cnt=1;for(int i=0;i<n;i++){ scanf("%lf",&a[i].pi); a[i].id=cnt++;}sort(a,a+n,cmp1);//这儿写成cnt了,导致WA了一次if(a[0].pi==a[1].pi){ Node tmp=a[1]; a[1]=a[0]; a[0]=tmp;}double sum=0,avg=0;for(int i=1;i<n-1;i++) sum+=a[i].pi;avg=sum/(n-2);//输出和平均分最接近的double res=99999999;int ans;for(int i=1;i<n-1;i++){ if(res>(double)fabs(a[i].pi-avg)){ res=fabs(a[i].pi-avg); ans=a[i].id;}}printf("%d\n",ans);}//system("pause"); return 0;}
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 1001
- 推荐一个vim 配置
- 题目:已知一个完全二叉树的结点数为770,问完全二叉树的叶子结点数为多少?
- 汇编——win32下计算result=m-n*x
- 浅析代理键替换管道
- 数据库乐观锁与悲观锁
- 1001
- 第三次作业 作业三
- zoj 3499 Median
- HTTPClient模拟登陆人人网
- 安装和卸载Android应用程序(apk包)
- Java中Date类的输出格式
- 一种简单的给MD5加盐算法
- 汇编——带标志位的冒泡排序
- C# 学习