| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 401 人关注过本帖
标题:按自己想法写了个输出魔方数的。可是只能对付3阶的。。求指教。。
只看楼主 加入收藏
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
结帖率:100%
收藏
 问题点数:0 回复次数:5 
按自己想法写了个输出魔方数的。可是只能对付3阶的。。求指教。。
所谓魔方数 就是横竖斜加起来和相等。。   

我的代码是这样的、

#include <stdio.h>
int main(void)
{
    int a[16][16]={0},i=0,j,e=1,s,n;
    printf("请输入n的值(1~15):");
    scanf("%d",&n);
    j=n/2;
    a[i][j]=e;
    for(s=1;s<=n*n-1;s++)
    {
        i--;j++;e++;
        if(i<0) i=n-1;
        if(j>n-1) j=0;
        {if(a[i][j]!=0)
            if(i==n-1&&j==0) {i=1;j=n-1;}
            else {i+=2;j--;}
        if(i>n-1) i=i-n+1;
        if(j<0) j=-j;}
        
        a[i][j]=e;
    }
    for(i=0;i<=n-1;i++)
    {{for(j=0;j<=n-1;j++)
            printf("%6d",a[i][j]);}
      putchar('\n');
    }
    return 0;
}



对于输入n=3没有问题, n=6的时候就有问题了,12和13不见了,我脑中按步骤算了下发现没问题啊, 为什么就变成其他数了。。。

求解。。。。。。完全凌乱了

搜索更多相关主题的帖子: include 
2012-10-07 10:35
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
收藏
得分:0 
已解决。。原来偶数阶没法形成魔方数的样子、、、、、

去追寻更高的技术领域。永不停止。
2012-10-07 10:56
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
收藏
得分:0 
有偶数 但是原理不一样好像。。。= =  继续看书了

去追寻更高的技术领域。永不停止。
2012-10-07 10:58
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
哎,最好能说下自己的思路!
要别人看懂你自己的东西,说实话有点困难,最好把格式弄简洁明了些!
我看了半天还是不太明白,你的a[3][5]和a[4][4]在我这里测试的结果都为零,说明都没有赋值!
自己好好检查下!
2012-10-07 11:12
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
你的程序好像是一个排序的方法,这方法能实现魔方效果
刚好看过不然看不懂 ,这是你按照那个排序编的程序么?
 {if(a[i][j]!=0)
            if(i==n-1&&j==0) {i=1;j=n-1;}   //如果i在最后一行 j在第一列 ,i=1,j=n-1表示回到上个循环下一行 那列 貌似不科学 不能用&&。。。额 不知道你的程序怎么成功的
       else {i+=2;j--;}     //表示回跳到上个循环的下一行,原来的那一列;
        if(i>n-1) i=i-n+1;    //貌似不科学    if(i>n-1) i=i-n;
        if(j<0) j=-j;}  //貌似多余 j=0在if的条件里面,除j=0之外j>0,j--不会<0;
你要实现的结果应该是如果有数据了就往下跳一行吧。。。

如果这段改成  if(a[i][j]!=0)
{
    i++;
    if(i>n-1) i=0;
}
这段的效果就是j++ 右移一列 结果会出错么

[ 本帖最后由 xtjopt 于 2012-10-7 15:30 编辑 ]
2012-10-07 15:05
快速回复:按自己想法写了个输出魔方数的。可是只能对付3阶的。。求指教。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017125 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved