Bailian2799 浮點數格式【文字處理+最值】
阿新 • • 發佈:2018-12-28
2799:浮點數格式
總時間限制: 1000ms 記憶體限制: 65536kB
描述
輸入n個浮點數,要求把這n個浮點數重新排列後再輸出
輸入
第1行是一個正整數n(n<=10000),後面n行每行一個浮點數,保證小數點會出現, 浮點數的長度不超過50位,注意這裡的浮點數會超過系統標準浮點數的表示範圍。
輸出
n行,每行對應一個輸入。要求每個浮點數的小數點在同一列上,同時要求首列上不會全部是空格。
樣例輸入
2
-0.34345
4545.232
樣例輸出
-0.34345
4545.232
問題連結:Bailian2799 浮點數格式
問題描述:(略)
問題分析:
這是一個文字處理問題,求個最值就可以了。用排序來做那是浮雲!
程式說明
參考連結:(略)
題記:(略)。
AC的C語言程式如下:
/* 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++語言程式如下:
/* 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; }