Bailian2799 浮點數格式【文本處理+最值】

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;
}
相關文章
相關標籤/搜索