奇怪的計算器

奇怪的計算器

計科專業的小明最近得到一個任務,去修理一臺奇怪的計算器,這個計算器輸出的結果是顛倒的,比如123它輸出321,遇到小數點的時候,整數和小數部分分別是顛倒的,比如123.456顯示成321.654,請編寫一個程序,將輸出的結果修正。
輸入
首先輸入一個整數N,然後輸入N行,每一行是一個計算器的輸出。
輸出
依次輸出每個值正確的值
輸入示範
4
2.879
13410.41
2.0005
100
輸出示範
2.978
1431.14
2.5
1

#include <string.h>
#include <stdio.h>
#include<math.h>
int main() {
    int n, point;
    char str[1000];
    char ch;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%s", &str);
        point = 0;
        for (int j = 0; j < strlen(str); j++)
            if (str[j] == '.')
                point = j;
        for (int j = 0; j < point / 2; j++) {   //顛倒整數部分
            ch = str[j];
            str[j] = str[point - j - 1];
            str[point - j - 1] = ch;
        }
        for (int j = 0; j < (strlen(str) - point - 1) / 2; j++) { //顛倒小數部分
            ch = str[point + j + 1];
            str[point + j + 1] = str[strlen(str) - j - 1];
            str[strlen(str) - j - 1] = ch;
        }
        while (str[0] == '0') {         //去除整數前面的0
            for (int i = 0; i < strlen(str); i++) {
                str[i] = str[i + 1];
            }
        }
        for (int i = strlen(str) - 1; ; i--)        //去除小數後面多餘的0
            if (str[i] != '0') {
                str[i + 1] = '\0';
                break;
            }
        printf("%s\n", str);
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章