今天是我第一次发表学习心得,记录下自己的学习,也希望能够向先辈们多多学习。看到那些牛人的文章,总是羡慕人家。最近我学习C语言程序这门课,我想把我做过的一个小程序发表出来,希望大家能够给我提供一些更好的建议,请多多指教。
这两天我一直在想C语言程序设计课本上的7.7 那道课后习题,我现在用最笨的方法实现了3*3的魔法阵。代码如下:
#include<stdio.h>
void main()
{
int a[3][3];
int i,j,i1,i2,i3,i4,i5,i6,i7,i8,i9,t1,t2,t3,t4,t5,t6,t7,t8;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=0;
for(i1=1;i1<=9;i1++)
{
a[0][0]=i1;
for(i2=1;i2<=9;i2++)
{
if(i2==i1)continue;
else
a[0][1]=i2;
for(i3=1;i3<=9;i3++)
{
if(i3==i1||i3==i2)continue;
else
a[0][2]=i3;
for(i4=1;i4<=9;i4++)
{
if(i4==i1||i4==i2||i4==i3)continue;
else
a[1][0]=i4;
for(i5=1;i5<=9;i5++)
{
if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
else
a[1][1]=i5;
for(i6=1;i6<=9;i6++)
{
if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
else
a[1][2]=i6;
for(i7=1;i7<=9;i7++)
{
if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
else
a[2][0]=i7;
for(i8=1;i8<=9;i8++)
{
if(i8==i1||i8==i2||i8==i3||i8==i4||i8==i5||i8==i6||i8==i7)continue;
else
a[2][1]=i8;
for(i9=1;i9<=9;i9++)
{
if(i9==i1||i9==i2||i9==i3||i9==i4||i9==i5||i9==i6||i9==i7||i9==i8)continue;
else
a[2][2]=i9;
t1=a[0][0]+a[0][1]+a[0][2];
t2=a[1][0]+a[1][1]+a[1][2];
t3=a[2][0]+a[2][1]+a[2][2];
t4=a[0][0]+a[1][0]+a[2][0];
t5=a[0][1]+a[1][1]+a[2][1];
t6=a[0][2]+a[1][2]+a[2][2];
t7=a[0][0]+a[1][1]+a[2][2];
t8=a[0][2]+a[1][1]+a[2][0];
if(t1==t2&&t1==t3&&t1==t4&&t1==t5&&t1==t6&&t1==t7&&t1==t8)
{
printf("*******************\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
if(i==2)printf("*******************\n");
}
}
}
}
}
}
}
}
}
}
}
}
运行的结果是:
这个方法很笨吧,嘻嘻,我会再花些时间把上面的代码完善,到那时再来跟大家分享下。