问题标题: 酷町堂:3855

0
0
已解决
周明轩
周明轩
资深光能
资深光能

题目描述 Description

现在有n(不超过50000)个小数(小数点后有2位),范围在-9.99~9.99,不包含0,从大到小排序输出

输入描述 Input Description

第一行输入一个整数n(不超过50000)
接下来n行,每行输入一个小数(-9.99~9.99,不包含0)

输出描述 Output Description

排序后,输出n个空格隔开的小数,保留2位小数

样例输入 Sample Input

5 -1.10 2.51 -3.21 4.45 2.12

样例输出 Sample Output

4.45 2.51 2.12 -1.10 -3.21

 

 

怎么做,求思路。


0
已采纳
蔡乐毅
蔡乐毅
高级光能
高级光能
  • for(int i=1;i<=n;i++){
    • cin>>t;
      • a[(int)(t*1000)+10000]++;
  • }
  • for(int i=19990;i>=10;i--){
    • while(a[i]--){
      • printf("%.2f ",i/1000.0-10);
    • }
  • }

数组至少定19991

0
0
邹昊轩
邹昊轩
资深光能
资深光能

 for(int i=50000;i>=1;i--)
        for(int j=1;j<=b[i];j++)
            cout<<(double)(i-10)/1000<<" ";

0
杜文博
杜文博
资深守护
资深守护

bool cmp(double &x,double &y)

{

return y>x;

}

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

{

cin>>a[i];

}

sort(a,a+n,cmp);

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

{

cout<<a[i]<<' ';

}

注意要加头文件#include<algorithm>

我要回答