| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2824 人关注过本帖
标题:别人出的一道题(数字螺旋阵排版问题)
取消只看楼主 加入收藏
wonderfulday
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2004-7-28
收藏
 问题点数:0 回复次数:2 
别人出的一道题(数字螺旋阵排版问题)

打印出具有下列规律的矩阵图

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

[此贴子已经被kai于2004-07-30 23:56:51编辑过]

搜索更多相关主题的帖子: 螺旋 数字 排版 打印 矩阵 
2004-07-29 19:37
wonderfulday
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2004-7-28
收藏
得分:0 

#include<stdio.h> #include<iostream.h>

#define SIZE 8 #define ALL SIZE*SIZE

static int x;

class round{ public: char point; int i; void set_r(){point='r';} void set_d(){point='d';} void set_l(){point='l';} void set_u(){point='u';}

};

round a[SIZE][SIZE];

main() { int i,k,j; for(i=0;i<SIZE/2;i++){ a[i][i].set_r(); a[i+1][i].set_r(); a[SIZE-i-1][SIZE-i-1].set_l(); a[SIZE-i-1][i].set_u(); a[i][SIZE-i-1].set_d(); }

x=1; i=0; j=0; do{ while(a[i][j].point=='r'||a[i][j].point==NULL){ a[i][j].i=x; x++; j++; } while(a[i][j].point=='d'||a[i][j].point==NULL){ a[i][j].i=x; x++; i++; } while(a[i][j].point=='l'||a[i][j].point==NULL){ a[i][j].i=x; x++; j--; } while(a[i][j].point=='u'||a[i][j].point==NULL){ a[i][j].i=x; x++; i--; }

}while(x!=ALL+1);

for(i=0;i<SIZE;i++){ for(k=0;k<SIZE;k++){ printf("%4d",a[i][k].i); } printf("\n"); }

return 0; }


2004-07-30 23:31
wonderfulday
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2004-7-28
收藏
得分:0 

我做了很久,我知道这不是一个好的方法

也有错,就是不能显示奇数的矩阵,望高手指点


2004-07-30 23:34
快速回复:别人出的一道题(数字螺旋阵排版问题)
数据加载中...
 
   



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

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