请你设计一个用于填充n阶方阵的上三角区域的程序。

  给大家分享一个老夫刚刚弄懂的代码,说实话,博主对这个填充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;
       }
  其实这个程序并没有什么难点,有不会的可以在评论去提问。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值