gg大玩家怎么修改内存:c的九宫图问题!

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 03:07:33
#include "stdafx.h"

int main(int argc, char* argv[])
{ int a[3][3];
int sum(int b[]);
int prt(int c[]);
int fun(int b[]);
for(a[0][0]=1;a[0][0]<=9;a[0][0]++)
for(a[0][1]=1;a[0][1]<=9;a[0][1]++)
for(a[0][2]=1;a[0][2]<=9;a[0][2]++)
for(a[1][0]=1;a[1][0]<=9;a[1][0]++)
for(a[1][1]=1;a[1][1]<=9;a[1][1]++)
for(a[1][2]=1;a[1][2]<=9;a[1][2]++)
for(a[2][0]=1;a[2][0]<=9;a[2][0]++)
for(a[2][1]=1;a[2][1]<=9;a[2][1]++)
for(a[2][2]=1;a[2][2]<=9;a[2][2]++)
{

if(fun(a[0]))
{ printf("the real answer is:\n");
prt(a[0]);
}

}
return 0;
}
int sum(int b[])
{
int sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8,i,j;
for(j=0;j<3;j++)
sum1=sum1+b[0*3+j];
for(j=0;j<3;j++)
sum2=sum2+b[1*3+j];
for(j=0;j<3;j++)
sum3=sum1+b[2*3+j];
for(i=0;i<3;i++)
sum4=sum2+b[i*3+0];
for(j=0;j<3;j++)
sum5=sum1+b[i*3+1];
for(j=0;j<3;j++)
sum6=sum2+b[i*3+2];
for(j=0,i=0;j<3&&i<3;j++,i++)
sum7=sum1+b[i*3+j];
for(j=0,i=0;j<3&&i<3;j++,i++)
sum8=sum2+b[i*3+j];
if(sum1==15&&sum2==15&&sum3==15&&sum4==15&&sum5==15&&sum6==15&&sum7==15&&sum8==15)
return 1;
return 0;

}
int fun(int b[])
{ int i,j,s,m,n;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
for(m=i;m<3;m++)
if(m=i)
for(n=j+1;n<3;n++)
s=b[m*3+n];
else for(n=0;n<3;n++)
s=b[m*3+n];
if(b[i*3+j]==s)
return 0;
}

return 1;
}
int prt(int c[])
{ int i,j;

for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<3;j++)
printf("%2d",c[i*3+j]);
}
return 0;
}
这是代码,怎么办啊?
这是我写的代码,我晓得怎么用,我想知道哪里有问题啊!

#include<stdio.h>
main()
{int i,j,k,n,a[22][22];
clrscr();
printf("\nplease input an odd number:");
scanf("%d",&n);
for(j=0;j<=n+1;j++)
{for(i=0;i<=n+1;i++)
if(j==0||i==0||j==n+1||i==n+1) a[j][i]=-1;
else a[j][i]=0;
}
a[n+1][n+1]=1;
i=(n+1)/2;
j=n;
a[j][i]=1;
for(k=1;k<=n*n;k++)
{if(a[j+1][i+1]==-1)
{if(j==n)
{a[1][i+1]=a[j][i]+1;
j=1;
i++;
}
else if(i==n)
{a[j+1][1]=a[j][i]+1;
j++;
i=1;
}
}
else if(a[j+1][i+1]!=0&&a[j-1][i]==0)
{a[j-1][i]=a[j][i]+1;
j=j-1;
}
else if(a[j+1][i+1]==0)
{a[j+1][i+1]=a[j][i]+1;
i++;
j++;
}

else if(a[j+1][i+1]!=0&&a[j+1][i+1]!=-1&&a[j][i-1]!=0) break;
}
for(j=1;j<=n;j++)
{printf("\n");
for(i=1;i<=n;i++) printf("%-3d ",a[j][i]);
}
getch();
}
我们刚刚学过数组,所以你编的程序,我看不懂.
这是我刚刚编的,调试结果正确.
可以求1~21的N宫图,大了也显示不了.
输入:5
结果:
11 18 25 2 9
10 23 19 21 3
4 6 13 20 22
23 5 7 14 16
17 24 1 8 15

把这段程序复制,在你的TC安装目录中(如果是TC3.0就要放在TC\bin\下),新建一个记事本文档,把程序粘贴进去,保存成.c(TC3.0就保存成.cpp)文件,然后就可以用TC打开并运行了.

头文件确定正确?