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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#undef EOF
#define EOF -1
#define SIZE 10
int 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>righ
		for(i=left_up,j=left_up;j<=right_down;j++)
			a[i][j]=++number;
		//left_up>right_down
		for(i=left_up+1,j=right_down;i<=right_down;i++)
			a[i][j]=++number;
			//right>left
		for(i=right_down,j=right_down-1;j>=left_up;j--)
			a[i][j]=++number;
		//down>up
		for(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 10
int 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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值