干嘛要先排序再反复调整呢?你输入的都是整数,最后调整完了还是整数。调整到最后集合里要么是所有的数都一样,方差为0要么是有两个数值的数,他们相差1,无法再匀了。设你总共输入了N个数,输入一个累加一下,得到N个数的和sum,最后方差为B调整完毕后大于均值的数的个数 b=sum%Nfloat n=N;if(b!=0)B=(sum/n-sum/N)*(sum/n-sum/N)*(N-b)+(1-sum/n+sum/N)*(1-sum/n+sum/N)*b;elseB=0;