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   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--)