这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
题目地址:http://poj.pku.edu.cn/problem/2799/
个人感觉这道题比较雷人,咋一看以为是需要把所有浮点数排列,后来在一个朋友的指点下才知道“排列”是指把浮点数后移一定格数使每个浮点数的小数点同一列。
//ID:百练2799
#include
#include
#include
#include
#include
#include
using namespace std;
int search_point_pos(char p[])
{
int i , len = strlen(p);
for(i = 0; i < len; i++)
if(p[i] == '.')
return i;
}
int main()
{
int nCases;
scanf("%d", &nCases);
char float_point[10000][51];
int i, max_point_pos = 0;
for(i = 0; i < nCases; i++)
{
scanf("%s", float_point[i]);
if(search_point_pos(float_point[i]) > max_point_pos)
max_point_pos =
search_point_pos(float_point[i]);
}
for(i = 0; i < nCases; i++)
{
int left =
max_point_pos - search_point_pos(float_point[i]);
for(int j = 0; j < left; j++)
putchar(' ');
printf("%s\n", float_point[i]);
}
return 0;
}