天天看点

杭电 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的代码是在每个输出之后加个空行;

这是我不理解的地方;