C语言之蛇形矩阵

C语言之蛇形矩阵_第1张图片

#include 
int main(){
    int arr[5][5]={1};
    int a1=0,a2=4,i=1;
    while(a1<=4&&a2>=0){
        if(a1==0&&a2>0){
            arr[a1][a2--] = i++;
            arr[a1++][a2++]=i++;
            while(a2!=4){
                arr[a1++][a2++]=i++;
            }
        }
        else if (a2==4){
            arr[a1++][a2]=i++;
            arr[a1--][a2--]=i++;
            while(a1!=0){
                arr[a1--][a2--]=i++;
            }
        }
        else if(a2==0){
            arr[a1++][a2]=i++;
            arr[a1++][a2++]=i++;
            while(a1!=4){
                arr[a1++][a2++]=i++;
            }
        }
        else if(a1==4){
            arr[a1][a2--]=i++;
            arr[a1][a2]=i++;
            if(arr[a1][a2]==25) {
                break;
            }
            a1--;a2--;
            while(a2!=0){
                arr[a1--][a2--]=i++;
            }
        }
    }
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            printf("%3d ",arr[i][j]);
        }
        printf("\n");
    }
}

设立两个指针,来回地走

你可能感兴趣的:(c语言,矩阵,算法)