3*3魔法阵

今天是我第一次发表学习心得,记录下自己的学习,也希望能够向先辈们多多学习。看到那些牛人的文章,总是羡慕人家。最近我学习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");
           }
           
          }
         }        
        }       
       }
      }
     }    
    }
   }
  }
 } 
}

运行的结果是:

这个方法很笨吧,嘻嘻,我会再花些时间把上面的代码完善,到那时再来跟大家分享下。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值