C语言 蛇形矩阵源程序写法
来源:百度知道 编辑:UC知道 时间:2024/06/28 09:56:35
求助一道程序题
蛇形方阵,如下图:
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
要求建立一个N阶蛇形矩阵,最好不要用>>和<<这类的指令.
不需要保存成文件的算法,只要能输出这个N阶矩阵就可以了,不要太复杂了,谢谢
而且我要求的是N阶矩阵,只需要输入一个N值就能出来,不需要单独输入行和列的
最好能在关键位置加上注释,谢谢
请大家用尽量异动的算法,步骤繁琐点都没有关系
蛇形方阵,如下图:
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
要求建立一个N阶蛇形矩阵,最好不要用>>和<<这类的指令.
不需要保存成文件的算法,只要能输出这个N阶矩阵就可以了,不要太复杂了,谢谢
而且我要求的是N阶矩阵,只需要输入一个N值就能出来,不需要单独输入行和列的
最好能在关键位置加上注释,谢谢
请大家用尽量异动的算法,步骤繁琐点都没有关系
1 3 4
2 5
6。。。。
这是有规律的,1,2,3,4,5,6.。。。。位置也有规律。程序有解释。所以我们可以
用数组来实现。
程序和解释如下:
#include "stdio.h"
void main()
{
int a[20][20],i,j,c=1,x=1,n,s=0;
printf("请输入n的值:\n");
scanf("%d",&n);
while(c<=n*(n+1)/2)
{
for(i=s,j=0;i>=0,j<=s;i--,j++)
{
if(s%2!=0) a[i][j]=c++;//无论n值为多少,规律(奇偶性与递增递减之间的关系)不变。
else a[j][i]=c++;
}
s++;
}//此为左上部分。
while(c<=n*n)
{
for(i=x,j=s-1;i<=s-1,j>=x;i++,j--)