我正在尝试解决这个问题,但是在codechef上它显示错误的答案,链接到queston是http://www.codechef.com/problems/STATUES/。在系统上,它显示正确答案,经过多次尝试后,我找不到该错误我的代码是,
#include<stdio.h>
//#include<conio.h>
int main()
{
int a[150];
int n;
int i;
int sum;
int avg;
int count=0;
scanf("%d",&n);
int ans;
int diff;
while(n!=0)
{
sum=0;
ans=0;
count++;
for(i=0;i<n;i++)
{ scanf("%d",&a[i]);
sum=sum+a[i];
}
avg=sum/n;
for(i=0;i<n;i++)
{ diff=avg-a[i];
if(diff>0)
ans=ans+diff;
}
printf("Set#%d\nThe minimum number of moves is %d.\n",count,ans);
scanf("%d",&n);
}
return 0;
}
答案 0 :(得分:2)
阅读问题中的条件:
在每个测试用例后输出一个空行。 请注意上述字符串中的大小写和标点符号。严格遵守输出格式将导致错误的答案判决。
每次输出后没有空白行。还需要一个for
循环来满足精确输出格式的条件。在while
之后添加此代码段。
for(i=0;i<n;i++)
{
printf("\nSet #%d\nThe minimum number of moves is %d.\n",i,ans);
}
另一个问题是
int a[150];
a
不应超过50
。将其更改为
int a[50];
但我建议你在这种情况下使用variable length array来节省内存。