题目描述
给出 nn 个小数,按照浮点数的大小,将他们从小到大排序。
输入描述
第一行,输入一个整数 n(1 \leq n \leq 10000)n(1≤n≤10000) 。
接下去 nn 行,每行输入一个浮点数,该浮点数的字符个数小于等于 100100 。
输出描述
输出 nn 行,表示排序好的 nn 个浮点数。
输入样例
4
1.12
3.14
5.1
1.1
输出样例
1.1
1.12
3.14
5.1
正确代码:
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
struct node{
string z,x;
}a[10005];
bool cmp(node a,node b){
if(a.z==b.z){
return a.x<b.x;
}
else{
if(a.z.size()==b.z.size()){
return a.z<b.z;
}
else{
return a.z.size()<b.z.size();
}
}
}
int main(){
int n;
string s;
cin>>n;
for(int i=1;i<=n;i++){
cin>>s;
int pos=s.find(".");
a[i].z=s.substr(0,pos);
a[i].x=s.substr(pos+1,s.size());
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].z<<"."<<a[i].x<<endl;
}
return 0;
}