#include <stdio.h>
main()
{int a[10][10],c[100],n,i,j,f,b[22];
while(1)
{ f=0;
for(i=0;i<22;i++) b[i]=0;
scanf("%d",&n);
if(n==0) break;
for(i=0;i<n;i++)
c[i]=i+1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{scanf("%d",&a[i][j]);
c[a[i][j]-1]=0;
b[i]=a[i][j]+b[i];
b[n+j]=a[i][j]+b[n+j];
if(i==j)
b[n+n]=a[i][j]+b[n+n];
if(i==n-1-j)
b[n+n+1]=a[i][j]+b[n+n+1];
}
for(i=0;i<n;i++)
if(c[i]>0)
{
f=1;
break;
}
for(i=0;i<=n+n;i++)
{ for(j=i+1;j<=n+n+1;j++)
if(b[i]!=b[j])
{
f=1;
break;
}
if(f==1)
break;
}
if(f==0)
printf("Yes\n");
else
printf("No\n");
}
}
为什么我的答案和题目对到的还说我错呢?
请大家帮帮忙,
题目的地址是:http://acm.zju.edu.cn/show_problem.php?pid=2835
----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{int a[10][10],c[1001],n,i,j,f,b[22];
while(1)
{ f=0;
for(i=0;i<22;i++) b[i]=0;
scanf("%d",&n);
if(n==0) break;
for(i=0;i<1001;i++)
c[i]=i+1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{scanf("%d",&a[i][j]);
if(c[a[i][j]]==0) f=1;
else c[a[i][j]]=0;
b[i]=a[i][j]+b[i];
b[n+j]=a[i][j]+b[n+j];
if(i==j)
b[n+n]=a[i][j]+b[n+n];
if(i==n-1-j)
b[n+n+1]=a[i][j]+b[n+n+1];
}
/* for(i=0;i<n;i++)
if(c[i]>0)
{
f=1;
break;
}
*/
for(i=0;i<=n+n;i++)
{ for(j=i+1;j<=n+n+1;j++)
if(b[i]!=b[j])
{
f=1;
break;
}
if(f==1)
break;
}
if(f==0)
printf("Yes\n");
else
printf("No\n");
}
}
----------------解决方案--------------------------------------------------------
版主你好厉害啊 ,有qq吗以后有问题还可以问你啊,我的qq是334198184
----------------解决方案--------------------------------------------------------
qq334198184,加我啊
----------------解决方案--------------------------------------------------------
ren yao o !!!
----------------解决方案--------------------------------------------------------