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

昨天还看到的,怎么今天就没啦?

#include <stdio.h> #define N 5 void main() { int n,i1,j1,i2,j2,k,s[N][N]; /*i1,j1,i2,j2分别是距阵的上下左右边界*/ n=i1=j1=0; i2=j2=N-1; while(i1<=i2) { for(k=j1;k<=j2;k++)s[i1][k]=++n; i1++; for(k=i1;k<=i2;k++)s[k][j2]=++n; j2--; for(k=j2;k>=j1;k--)s[i2][k]=++n; i2--; for(k=i2;k>=i1;k--)s[k][j1]=++n; j1++; } for(i1=0;i1<N;i1++) { for(j1=0;j1<N;j1++) printf("%5d",s[i1][j1]); printf("\n"); } }

这是我在网吧写的,没有编译测试过,你试试,反正是这思路。

搜索更多相关主题的帖子: 螺旋 void int main define 
2004-05-25 20:09
静夜思
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:济南的冬天
等 级:管理员
威 望:11
帖 子:8913
专家分:2567
注 册:2004-3-25
收藏
得分:0 
数据库出了点问题,重新装的备份数据库,很抱歉,丢了一部分最近的数据

[此贴子已经被作者于2004-05-25 20:12:06编辑过]



畅所欲言
2004-05-25 20:11
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

那个题目是我写的,当时不会做,想了好久,我也想出了一种(好像比你的麻烦):

#define N 5

main()

{int i,j,t,a[N][N],k;

for(i=0,j=0,t=0,k=1;k<N*N;k++) /*i控制行,j控制列,t控制圈数,最外圈时t=0 */

{a[i][j]=k; if((i==t+1)&&(j==t)) t++;

if(i==t) {j++;if(j==N-t) {j=N-1-t;i++;}}

else {if(j==N-1-t) {i++;if(i==N-t) {i=N-1-t;j--;}}

else {if(i==N-1-t) {j--;if(j==t-1) {j=t;i--;}}

else if(j==t) i--;

}

}

}

}

这样也可以的,我运行出来了的,不过好像比你的麻烦多了!


2004-05-29 22:52
快速回复:回一个螺旋距阵的问题!
数据加载中...
 
   



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

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