天天看點

杭電 ACM 1.2.2

杭電 ACM 1.2.2

這一題意思其實就是尋找平均數,然後統計有多少個大于平均數的數,并且統計大數比平均數大多少的和,即為所求的結果。

下面是我的代碼:

#include<stdio.h>

int main(void)

{

    int n;

    int i, j;

    int sum;

    int count;

    int a[100];

    while(scanf("%d", &n) != EOF && n != 0)

    {

        sum = 0;

        for(j = 0;j < n;j++)

        {

            scanf("%d", &a[j]);

            sum += a[j];

        }

        sum = sum/j;

        count = 0;

        for(j = 0;j < n;j++)

        {

            if(a[j] > sum)

                count += a[j] - sum;

        }

        printf("Set #%d\n", i + 1);

        printf("The minimum number of moves is %d.\n", count);

        printf("\n");

        i++;

    }

    return 0;

}

但是我在這個題中發現了一些自己也無法了解的地方,根據題目的意思,數組中的個數為N,N是不大于50,但是在送出的時候如果将數組設為50 就為出現wrong error的錯誤,是以我将它設為了100,結果就AC了;

還有就是最後的空行,我了解的意思根據題意,應該在兩個輸出之間才有一個空行的,但是,按照AC的代碼是在每個輸出之後加個空行;

這是我不了解的地方;