标题:输出三阶魔方阵 在语法上遇到了些问题 希望大家能够指导一下
只看楼主
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
结帖率:85.71%
已结贴  问题点数:20 回复次数:2 
输出三阶魔方阵 在语法上遇到了些问题 希望大家能够指导一下
出现的结果是无任何输出  我想假如语法那儿错了 至少会有输出  因为数组已经初始化了

我的想法是:分别判断a[i][j]是否在第一行,是否在最后一列,是否在右上角,然后分别处理
是否是do while 语句 和continue 搭配有问题呢   希望大家指出  谢谢

程序
#include<stdio.h>
void main()
{int a[3][3]={0},i,j,m=1;
a[0][1]=1;
do
{
    if(a[i+1][j+1]=0)
    {
        a[i+1][j+1]=a[i][j]+1;
        i=i+1;j=j+1;
        m++;//as least you should write three lines.
        continue;
    }
    else if(a[i+1][j+1]<0||a[i][j]>9)
    {
        if(j==2&&i==0)
        {
            a[i-1][j]=a[i][j]+1;
            i=i-1;j=j;
            m++;
            continue;
        }
        else if(j==2&&i!=0)
        {
            a[i-1][j-2]=a[i][j]+1;
            i=i-1;j=j-2;
            m++;
        }
        else if(j!=2&&i==0)
        {
            a[i+2][j+1]=a[i][j]+1;
            i=i+2;j=j+1;
            m++;
        }
        else if(a[i+1][j+1]>0&&a[i][j]<=9)
        {
            a[i-1][j]=a[i][j]+1;
            i=i-1;
            m++;
            continue;
        }
        else
            ;
    }
}while(m==8);

for(i=0;i<3;i++)
{
    for(j=0;j<3;j++)
    {
        printf("%  d",a[i][j]);
    
    }
    printf("\n");
}
printf("\n");
}
搜索更多相关主题的帖子: 魔方 语法 输出 指导 
2009-07-31 20:20
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
得分:0 
回复 楼主 jude1990
上面的程序已更正了一些配对问题   
更正程序  



#include<stdio.h>
void main()
{int a[3][3]={0},i,j,m=1;
a[0][1]=1;
do
{
    if(a[i+1][j+1]=0)
    {
        a[i+1][j+1]=a[i][j]+1;
        i=i+1;j=j+1;
        m++;//as least you should write three lines.
        continue;
    }
    else if(a[i+1][j+1]<0||a[i][j]>9)
    {
        if(j==2&&i==0)
        {
            a[i-1][j]=a[i][j]+1;
            i=i-1;j=j;
            m++;
            continue;
        }
        else if(j==2&&i!=0)
        {
            a[i-1][j-2]=a[i][j]+1;
            i=i-1;j=j-2;
            m++;
        }
        else
        {
            a[i+2][j+1]=a[i][j]+1;
            i=i+2;j=j+1;
            m++;
        }
    }
        else if(a[i+1][j+1]>0&&a[i][j]<=9)
        {
            a[i-1][j]=a[i][j]+1;
            i=i-1;
            m++;
            continue;
        }
    
    else
            ;
    
}while(m==9);

for(i=0;i<3;i++)
{
    for(j=0;j<3;j++)
    {
        printf("%  d",a[i][j]);
    
    }
    printf("\n");
}
printf("\n");
}
2009-07-31 20:27
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
得分:20 
第七行:
if(a[i+1][j+1]=0)

使用了i,j,但i,j 没有初始化,数组下标越界!
2009-08-04 00:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-281198-1-1.html




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

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