吉林大学超星MOOC高级语言程序设计 实验04 数组及其在程序设计中的应用(2021级)螺旋矩阵 zzk

吉林大学超星MOOC高级语言程序设计 实验04 数组及其在程序设计中的应用(2021级)螺旋矩阵

题目编号:Exp04-Enhance05,freshman-1050,GJBook3-0622

题目名称:螺旋矩阵

题目描述:

螺旋矩阵指一个呈螺旋状的数字矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环。如下所示为3阶螺旋矩阵。

吉林大学超星MOOC高级语言程序设计 实验04 数组及其在程序设计中的应用(2021级)螺旋矩阵 zzk

输入:输入一个正整数 N (N<=30),标明矩阵阶数。

输出:按螺旋矩阵形式输出整数 1~N^2, 共 N 行N 列,每个数字输出占4个西文字符宽度,右对齐,最后一个数字后无多余字符。

样例:

输入:
15
输出:

    

吉林大学超星MOOC高级语言程序设计 实验04 数组及其在程序设计中的应用(2021级)螺旋矩阵 zzk

//螺旋矩阵  i为圈数 
#include<stdio.h>
int main(){
	int a[31][31],n,i,cnt=1,j,ret=0;
	scanf("%d",&n);
	for(i=1;cnt<=n*n-ret;i++){//先生成矩阵 
		for(j=i;j<=n+1-i&&cnt<=n*n;j++){//将递增的cnt放入不同位置 
			a[i][j]=cnt++;
		} 
	    for(j=i+1;j<=n-i&&cnt<=n*n;j++){
	    	a[j][n+1-i]=cnt++;
		}
		for(j=n+1-i;j>=i&&cnt<=n*n;j--){
	    	a[n+1-i][j]=cnt++;
		}
		for(j=n-i;j>i&&cnt<=n*n;j--){
	    	a[j][i]=cnt++;
		}		
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			printf("%4d",a[i][j]);
		}
		if(i!=n)printf("\n");
	}
return 0;
}

上一篇:吉林大学超星MOOC学习通高级语言程序设计 C++ 实验04 数组及其在程序设计中的应用(2021级)(1)


下一篇:Hello World的条件输出(题目出自 Python123.io 网站,中国大学MOOC课程:《Python语言程序设计》(第16期)北京理工大学 嵩天)