输出螺纹方阵C语言

本文详细介绍了如何使用C语言编写程序,通过递归的方式生成给定阶数N的螺旋方阵,展示了从输入阶数到输出矩阵的具体过程。
摘要由CSDN通过智能技术生成

题目:输出螺旋方阵 问题描述 螺旋方阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变 大,向左变大,向上变大,下面是一个5*5阶的螺旋方阵。输入螺旋方阵的阶数N,按行 输出该螺旋方阵。

1   2    3   4  5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

#include<stdio.h>
int main()
{
	int m,n,i,j,t=1;
	int a,b,x,y;
	int orginal[100][100]={0};
	scanf("%d %d",&m,&n);
	a=m;b=n;
	
	//对orginal[i][j]进行赋值 
	i=0;j=0;x=0;y=0; 
	while(t<=m*n){
		//每循环一遍,未赋值部分减小一圈 
		if(t!=1){
			a--;b--;
		}
		
		j=x;
		for(;j<b&&t<=m*n;j++){
			orginal[i][j]=t;t++;
		}
		i++;j--; y++;
		
		for(;i<a&&t<=m*n;i++){
			orginal[i][j]=t;t++;
		}
		i--;j--;
		
		for(;j>=x&&t<=m*n;j--){
			orginal[i][j]=t;t++;
		}
		i--;j++;
		
		for(;i>=y&&t<=m*n;i--){
			orginal[i][j]=t;t++;
		}
		i++;j++; x++;
	}
	
	//输出orginal[i][j] 
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			printf("%-4d",orginal[i][j]);
		}
		printf("\n");
	}
	return 0;
 } 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值