给大家分享一个老夫刚刚弄懂的代码,说实话,博主对这个填充N阶方阵的程序真心是不擅长啊,这个程序是从网上搞来的,废话不说了,直接上题:
方阵的主对角线之上称为“上三角”。
请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充
例如:当n=3时,输出
1 2 3
6 4
5
输入
输入一个整数n。
输出
输出这个n阶螺旋填充的三角形。
注:每一行输出的最后没有空格。
代码如下:
#include <iostream>
using namespace std;
int Fanfzhen[100][100];//定义一个100*100的方阵
int main()
{
int down,up;//down为下限,up为上限
int i,j;//控制for循环
int n;//输入是多少阶的矩阵
int gs;//控制输出格式
while(cin>>n)
{
if(n==0)
{
break;
}
else
{
down=0;
up=n;
//构建n阶方阵上三角,并填充数字
for(j=1;j<=n*(n+1)/2;down++,up--)
{
for(i=down;i<up-down; i++)
Fanfzhen[down][i]=j++;
for(i=down+1; i<up-down; i++)
Fanfzhen[i][up-i-1]=j++;
for(i=(up-down)-2; i>down; i--)
Fanfzhen[i][down]=j++;
}
//构建结束,数字填充完成
//开始按照输出格式输出
for(i=0;i<n;i++)
{
gs=0;
for(j=0;j<n-i;j++)
{
cout<<Fanfzhen[i][j];
gs=gs+1;
if(gs==n-i)
cout<<endl;
else
cout<<" ";
}
}
}
return 0;
}
其实这个程序并没有什么难点,有不会的可以在评论去提问。
请你设计一个用于填充n阶方阵的上三角区域的程序。
最新推荐文章于 2023-12-29 21:47:41 发布