2799:浮点数格式
总时间限制: 1000ms 内存限制: 65536kB
描述
输入n个浮点数,要求把这n个浮点数从新排列后再输出
输入
第1行是一个正整数n(n<=10000),后面n行每行一个浮点数,保证小数点会出现, 浮点数的长度不超过50位,注意这里的浮点数会超过系统标准浮点数的表示范围。
输出
n行,每行对应一个输入。要求每一个浮点数的小数点在同一列上,同时要求首列上不会所有是空格。
样例输入
2
-0.34345
4545.232
样例输出
-0.34345
4545.232ios
问题连接:Bailian2799 浮点数格式
问题描述:(略)
问题分析:
这是一个文本处理问题,求个最值就能够了。用排序来作那是浮云!
程序说明:(略)
参考连接:(略)
题记:(略)。spa
AC的C语言程序以下:.net
/* Bailian2799 浮点数格式 */ #include <stdio.h> #define MAX(a, b) (((a) > (b)) ? (a) : (b)) #define N 100000 #define L 50 char s[N][L + 1]; int pos[N]; int main(void) { int n, maxpos = 0, i, j; scanf("%d", &n); for(i = 0; i < n; i++) { scanf("%s", s[i]); for(j = 0; s[i][j] != '.'; j++); pos[i] = j - 1; maxpos = MAX(maxpos, pos[i]); } for(i = 0; i < n; i++) { for(j = 0; j < maxpos - pos[i]; j++) printf(" "); printf("%s\n", s[i]); } return 0; }
AC的C++语言程序以下:code
/* Bailian2799 浮点数格式 */ #include <iostream> using namespace std; const int N = 100000; string s[N]; int pos[N]; int main() { int n, maxpos = 0; cin >> n; for(int i = 0; i < n; i++) { cin >> s[i]; pos[i] = s[i].find('.'); maxpos = max(maxpos, pos[i]); } for(int i = 0; i < n; i++) { s[i].insert(0, maxpos - pos[i], ' '); cout << s[i] << endl; } return 0; }