| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1130 人关注过本帖
标题:[讨论]蛇型矩阵
只看楼主 加入收藏
shensheng4
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-8-7
收藏
 问题点数:0 回复次数:14 
[讨论]蛇型矩阵
我自编的,请大家帮忙改进
#define MAX 6
void aa(int a[MAX][MAX]);
main()
{
int i,j;
int b[MAX][MAX]={0};
for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
printf("%3d",b[i][j]);
printf("\n");
}
aa(b);
for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
printf("%3d",b[i][j]);
printf("\n");
}
getch();
}
void aa(int a[MAX][MAX])
{
int i=0,j=0,k=0,sign=1;
while(k<MAX*MAX)
{
k++;
a[i][j]=k;
if(sign)
{
if(i>0&&j<MAX-1)
{ i--;j++; }
else
{
if(i==0)
j++;
else if(j==MAX-1)
i++;
sign=!sign;
}
}
else
{
if(j>0&&i<MAX-1)
{ i++;j--; }
else
{
if(i==MAX-1)
j++;
else if(j==0)
i++;
sign=!sign;
}
}
}
}
搜索更多相关主题的帖子: 矩阵 
2006-02-26 07:11
likk
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2005-9-15
收藏
得分:0 
第十四行到第二十九行有问题
我先不说看看你能不能找到
2006-03-10 19:57
shensheng4
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-8-7
收藏
得分:0 
非常感谢likk,我找到了错误。
我在右上方向处理时,判断顺序错了。
下面是我改过的,请多指教。

梦想是不可能实现的,正因为如此才值得我们去追寻。 这是我选择的路,即使付出一切,我也毫无怨言。
2006-03-11 06:40
shensheng4
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-8-7
收藏
得分:0 

#define MAX 3
void aa(int a[MAX][MAX]);
main()
{
int i,j;
int b[MAX][MAX]={0};
aa(b);
for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
printf("%3d",b[i][j]);
printf("\n");
}
getch();
}
void aa(int a[MAX][MAX])
{
int i=0,j=0,k=0,sign=1;
while(k<MAX*MAX)
{
k++;
a[i][j]=k;
if(sign)
{
if(i>0&&j<MAX-1)
{ i--;j++; }
else
{
if(j==MAX-1)
i++;
else if(i==0)
j++;
sign=!sign;
}
}
else
{
if(j>0&&i<MAX-1)
{ i++;j--; }
else
{
if(i==MAX-1)
j++;
else if(j==0)
i++;
sign=!sign;
}
}
}
}

梦想是不可能实现的,正因为如此才值得我们去追寻。 这是我选择的路,即使付出一切,我也毫无怨言。
2006-03-11 06:40
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
收藏
得分:0 
哦,蛇形矩阵原来是这样的啊

2006-03-12 10:20
yz1987cn
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-3-5
收藏
得分:0 
照原样输出不就行了吗,,,费那么大劲~

潘安退避三舍,宋玉甘拜下风
2006-03-12 22:49
黑衣圣堂
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-13
收藏
得分:0 
那就不叫编程了哦

我不是一支恣意逃窜的箭,而是一个威灵的射手,我的直感,会引领着,把自我射向,更遥远的,流浪。
2006-03-13 11:23
withoutme_hw
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-19
收藏
得分:0 
以前写过这个程序
你的程序我没看,(没注释有点烦)
这个是我以前写的:

#define MAX 20
/*宏定义方阵的大小*/
main()
{
int flag=1,N,i=0,j=0,k=2,A[MAX][MAX]; /*flag记录下下一步赋值的走向,初始为1,即向右
flag为2时往左下 为3时竖直往下 为4时右上*/
printf("enter the size of the array:");
scanf("%d",&N);
A[0][0]=1; /*赋第0行第0列为一*/
do
{
switch(flag)
{
case 1: /*往右赋值*/
j++;A[i][j]=k;k++;
flag=(i+j<=N-1?2:4); /*如果这一步赋完值之后是在方阵的右上半部分,则下一步 向往左下赋值,否则往右上赋值。下面的flag赋值同理*/
break;
case 2:
while(j-1>=0&&i+1!=N)
{
i++,j--;A[i][j]=k;k++;
} /*往左下赋值,直到方阵的边界*/
flag=(i+j<N-1?3:1);
break;
case 3:
i++,A[i][j]=k,k++;
flag=(i+j<=N-1?4:2);
break;
case 4:
while(j+1!=N&&i-1>=0)
{
i--,j++;
A[i][j]=k;k++;
}
flag=(i+j<N-1?1:3);
break;
}
}while(i!=j||j!=N-1); /*赋值完毕,推出循环*/
for(i=0;i<N;i++) /*打印出这个方阵*/
{
for(j=0;j<N;j++)
{
printf("%3d",A[i][j]);
}
printf("\n");
}
getch(); /*按任意键退出*/
}

好好学C 天天向上
2006-03-19 18:34
withoutme_hw
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-19
收藏
得分:0 

嗯,终于看懂了你的程序
算法挺好的


好好学C 天天向上
2006-03-19 19:07
withoutme_hw
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-19
收藏
得分:0 
我还在读大一
有时间可以交流一下
我的QQ在下面

好好学C 天天向上
2006-03-19 19:08
快速回复:[讨论]蛇型矩阵
数据加载中...
 
   



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

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