格式化輸出

某朝發表於2024-10-11

有一雙精度值d=1.23456789,從鍵盤輸入輸出值要求的寬度和小數位數(0<寬度和小叔位數<=10),要求按該輸出格式要求輸出d。
如:輸入:8(輸出值要求的寬度) 4(小數位數),要求輸出: 1.2346(數值前面有2個空格)。

#include <stdio.h>

int main() {
    int width, precision;
    double d = 1.23456789;

    // 從鍵盤輸入要求的寬度和小數位數
    scanf("%d %d", &width, &precision);

    // 輸出格式化的值,注意要加上適當的寬度和小數位數
    printf("%*.*f\n", width, precision, d);

    return 0;
}

程式碼說明:

輸入:
程式使用 scanf 從鍵盤讀取兩個整數:width(輸出值的寬度)和 precision(小數位數)。

格式化輸出:
使用 printf 函式的格式符 %.f:
第一個 * 表示寬度,由變數 width 提供。
第二個 * 表示小數位數,由變數 precision 提供。
f 表示以浮點數格式輸出。

輸出效果:
當使用者輸入 8 和 4 時,程式將輸出 1.2346(前面有兩個空格,總寬度為8,小數位數為4)。

注意事項:
確保輸入的寬度和小數位數均在規定範圍內(0 < 寬度和小數位數 <= 10),否則可能導致未定義行為或格式錯誤。您可以新增輸入驗證來保證這一點。

相關文章