ZeroJudge D786: 平均值

題目敘述

每筆輸入第一行有一個正整數N,接下來會有N行,每行第一個正整數M代表接下來會有幾個數字要做輸入。要求輸出每筆資料的平均值 (四捨五入至小數點第二位)。


範例輸入

2

5 2 4 6 8 10

3 52 30 61

範例輸出

6.00

47.67


解題思路

使用For迴圈將數字都加到一個變數中,再把sum/M的值存到一個double變數中。需要注意的是,sum和M這兩個變數可以使用double來宣告這樣子就不需要在計算平均值時做轉型的動作。計算完之後可以使用stdio.h中的printf(%.2f\n, ans)來做四捨五入到第二位的輸出。

解題程式碼如下 (僅供參考):

#include <iostream>
#include <stdio.h>
using namespace std;

int main() {
    cin.sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin >> N;
    for (int i = 0; i<N; i++)
    {
        double M;
        cin >> M;
        double sum = 0;
        for (int j = 0; j<M; j++)
        {
            double tmp;
            cin >> tmp;
            sum += tmp;
        }
        double ans = sum/M;
        printf("%.2f\n", ans);
    }
}

留言

這個網誌中的熱門文章

ZeroJudge M933: 邏輯電路

ZeroJudge A148: You Cannot Pass?!

ZeroJudge A263: 日期差幾天