| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 486 人关注过本帖
标题:一道有关螺旋矩阵的问题,输出错误,还望大家指点一二,谢谢
只看楼主 加入收藏
阑珊灯火
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-10-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
一道有关螺旋矩阵的问题,输出错误,还望大家指点一二,谢谢
#include<stdio.h>
#define N 100
#define down 1
#define left 2
#define up   3
#define right 4
void main()
{int n,i,j,s,dir=right,count=0;
 int num=2,lenth=1;
 int a[N][N];
 scanf("%d",&n);
 i=j=(n+1)/2;
 a[i][j]=1;
 while(num<=n*n)
 {for(s=0;s<lenth;s++)
     {switch(dir)
      {case left: a[i][--j]=num++;break;
       case right: a[i][++j]=num++;break;
       case up: a[--i][j]=num++;break;
       case down: a[++i][j]=num++;break;
       defaule: break;
      }
     }
     count++;
     if(count==2)
     {count=0;
      lenth++;
     }
     dir=(dir+1)%4;
 }
   for(i=1;i<=n;i++)
   {for(j=1;j<=n;j++)
       printf("%3d",a[i][j]);
       printf("\n");
   }
 
}
输入 5
本应该输出为     
         21 22 23 24 25
         20  7  8  9  10
         19  6  1  2  11
         18  5  4  3  12
         17  16 15 14 13
但是我编写的输出为

      0   7  0  0  0
      0   8  1  2  0
      0   9  3  4  0
     11  10  0  0  0  
怎么回事?我找不出来!希望大家帮忙


[ 本帖最后由 阑珊灯火 于 2009-10-29 10:35 编辑 ]
搜索更多相关主题的帖子: 螺旋 输出 矩阵 
2009-10-29 09:55
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
收藏
得分:10 
按照你的代码,dir会出现0的情况而不会出现4,所以只需把方向的宏定义从零开始,应该就没问题了。
2009-10-29 22:44
zyqf
Rank: 2
来 自:云南
等 级:论坛游民
威 望:1
帖 子:14
专家分:50
注 册:2009-10-23
收藏
得分:10 
厉害,我看都有点成问题!谢谢分享!
2009-10-30 15:10
快速回复:一道有关螺旋矩阵的问题,输出错误,还望大家指点一二,谢谢
数据加载中...
 
   



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

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