顺时针初始化矩阵,S型初始化矩阵-C语言

来源:互联网 发布:金融学网络课程 编辑:程序博客网 时间:2024/06/05 17:42
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#undef EOF#define EOF -1#define SIZE 10int a[SIZE][SIZE];int main(int  argc,char *argv[]){int dim=atoi(argv[1]);int cirle = dim%2==0 ? dim/2 : dim/2+1;  //找到需要转的圈数 int i,j;  //控制循环 int left_up,right_down; //左上角和右下角的坐标 int number=0;// left_up=0;// right_down=dim-1;int index;for(index=0;index<cirle;index++) ///所转的方环数{left_up=index;                 //确定坐标 每次一个方环 都变right_down=dim-left_up-1;    //非常重要     //left>righfor(i=left_up,j=left_up;j<=right_down;j++)a[i][j]=++number;//left_up>right_downfor(i=left_up+1,j=right_down;i<=right_down;i++)a[i][j]=++number;//right>leftfor(i=right_down,j=right_down-1;j>=left_up;j--)a[i][j]=++number;//down>upfor(i=right_down-1,j=left_up;i>=left_up+1;--i)a[i][j]=++number;}for(i=0;i<dim;++i){for(j=0;j<dim;++j)printf("%5d ",a[i][j]);printf("\n");}system("pause");return 0;}//重点在于记录左上角和右下角的坐标,并且每次循环方环时,坐标会改变

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#undef EOF#define EOF -1#define SIZE 10int a[SIZE][SIZE];//判断行号 如果为偶数,正序输入  如果为奇数,逆序输入int main(int  argc,char *argv[]){int dim=atoi(argv[1]);//int cirle = dim%2==0 ? dim/2 : dim/2+1;  //找到需要转的圈数int i,j;  //控制循环int left_up,right_down; //左上角和右下角的坐标int number=0;left_up=0;right_down=dim-1;int index;for(index=0;index<dim;index++){if(index%2==0){for(i=index,j=left_up;j<=right_down;j++)a[i][j]=++number;}else{for(i=index,j=right_down;j>=left_up;j--)       a[i][j]=++number;}}for(i=0;i<dim;++i){for(j=0;j<dim;++j)printf("%5d ",a[i][j]);printf("\n");}

顺时针的输出结果


蛇形的输出结果

0 0
原创粉丝点击