i,j,l,k,m:integer;
a:array[1..255] of integer;
begin
read(i);
for j:=1 to i do
read(a[j]);
for j:=1 to i do
l:=l+a[j];
k:=l div i;
for j:=1 to i do
begin
a[j+1]:=a[j]-k+a[j+1];
if a[j]<>k
then inc(m)
end;
write(m);
readln(m);
end.
#include<malloc.h>
int n,s,j=0,q,i;
int*m;
int main()
{
scanf("%d",&n);
m=(int*)calloc(n,sizeof(int));
for(i=0;i<n;i++)
{
scanf("%d",&m[i]);
j+=m[i];
}
q=j/n;
s=0;
for(i=0;i<n-1;i++)
if(m[i]>q)
{
m[i+1]+=(q-m[i]);
m[i]=q;
s++;
}
else if(m[i]<q)
{
m[i]+=(q-m[i]);
m[i+1]-=(q-m[i]);
s++;
}
printf("%d",s);
while(1);
return 0;
}
这是我写的,和你的一样啊,可是只有20,帮我看看??
#include<malloc.h>
int n,s,j=0,q,i;
int*m;
int main()
{
scanf("%d",&n);
m=(int*)calloc(n,sizeof(int));
for(i=0;i<n;i++)
{
scanf("%d",&m[i]);
j+=m[i];
}
q=j/n;
s=0;
for(i=0;i<n-1;i++)
if(m[i]>q)
{
m[i+1]+=(q-m[i]);
m[i]=q;
s++;
}
else if(m[i]<q)
{
m[i]+=(q-m[i]);
m[i+1]-=(q-m[i]);
s++;
}
printf("%d",s);
while(1);
return 0;
}
不对,这才是,上面的是你的