平方矩阵-回形矩阵

文章提供了解决给定整数N时,生成N阶回字形二维数组的C++和C语言代码。代码使用嵌套循环结构,通过计算当前位置的上下左右边界并取最小值来确定输出的数字,逐行打印出数组。示例给出了从1到5阶的输出结果,并在输入N=0时结束程序。
摘要由CSDN通过智能技术生成

输入整数 N,输出一个 N 阶的回字形二维数组。

数组的最外层为 1,次外层为 2,以此类推。

输入格式

输入包含多行,每行包含一个整数N。

当输入行为 N=0 时,表示输入结束,且该行无需作任何处理。

输出格式

对于每个输入整数 N,输出一个满足要求的 N 阶二维数组。

每个数组占 N 行,每行包含 N 个用空格隔开的整数。

每个数组输出完毕后,输出一个空行。

数据范围

0≤N≤100

输入样例:
1
2
3
4
5
0
输出样例:
1

1 1
1 1

1 1 1
1 2 1
1 1 1

1 1 1 1
1 2 2 1
1 2 2 1
1 1 1 1

1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

解题思想:

1.C++代码:

#include<iostream>

using namespace std;

int main()

{

int n;

while(cin>>n,n)

{

for(int i=1;i<=n;i++)

{

for(int j=1;j<=n;j++)

{

int up=j,down=n-j+1,left=i,right=n-i+1;

cout<<min(min(up,down),min(left,right))<<' ';

}

cout<<endl;

}

cout<<endl;

}

return 0;

}

2.C语言代码:

#include<stdio.h>

int min(int a, int b)

{

return a > b ? b : a;

}

int main()

{

int n;

while (scanf("%d",&n),n)

{

for (int i = 1; i <= n; i++)

{

for (int j = 1; j <= n; j++)

{

int up = i, down = n - i + 1, left = j, right = n - j + 1;

int x = min(min(up, down), min(left, right));//c语言不能直接用min函数,因此自己写一个

printf("%d ", x);

}

printf("\n");

}

if(n==0) break;

printf("\n");

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值