2799:浮点数格式
查看 提交 统计 提示 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
输入n个浮点数,要求把这n个浮点数重新排列后再输出
输入
第1行是一个正整数n(n<=10000),后面n行每行一个浮点数,保证小数点会出现, 浮点数的长度不超过50位,注意这里的浮点数会超过系统标准浮点数的表示范围。
输出
n行,每行对应一个输入。要求每个浮点数的小数点在同一列上,同时要求首列上不会全部是空格。
样例输入
2
-0.34345
4545.232
样例输出
-0.34345
4545.232
#include <iostream>
#include <string>
using namespace std;
const int maxn = 10010;
struct node
{
string left;
string right;
} Num[maxn];
int main()
{
int n;
cin >> n;
string s;
string s1, s2;
for (int i = 0; i < n; i++)
{
cin >> s;
int index = s.find('.');
Num[i].left = s.substr(0, index);
Num[i].right = s.substr(index + 1);
}
int len = -1;
for (int i = 0; i < n; i++)
{
int a = Num[i].left.length();
if (a > len)
{
len = Num[i].left.length();
}
}
for (int i = 0; i < n; i++)
{
int l = Num[i].left.length();
if (l < len)
{
int count = len - l;
for (int i = 0; i < count; i++)
{
cout << ' ';
}
cout << Num[i].left << '.' << Num[i].right << endl;
}
else
{
cout << Num[i].left << '.' << Num[i].right << endl;
}
}
return 0;
}