C语言-蛇形矩阵

    1   2   6   7  15

    3   5   8  14  16

    4   9  13  17  22

  10  12  18  21  23

  11  19  20  24  25 型蛇形矩阵


#include<stdio.h>
#define SIZE 100
void newMatrix(int matrix[SIZE][SIZE],int n);
int main()
{
    int matrix[SIZE][SIZE]={0};
    newMatrix(matrix,10);


}

void newMatrix(int matrix[SIZE][SIZE],int n)
{
    int count=1,dia=1;
    int x=0,y=0;
    int i,j;
    while(dia<=(2*n-1)){
    if(dia%2){
        do{
            matrix[x][y]=count;
            count++;
            x=x-1;
            y=y+1;
        }while(x>=0&&y>=0&&x+y==dia-1&&x<n&&y<n);
        dia++;
        if(dia>n)
        {
            x=x+2;
            y=y-1;
        }
        else{
            x=x+1;
        }
    }
    if(!(dia%2)){
        do{
            matrix[x][y]=count;
            count++;
            x=x+1;
            y=y-1;
        }while(x>=0&&y>=0&&x+y==dia-1&&x<n&&y<n);
        dia++;
        if(dia>n){
            x=x-1;
            y=y+2;
        }
        else{
            y=y+1;
        }
    }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("%3d ",matrix[i][j]);
        }
        printf("\n");
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值