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

来源:互联网 发布:网络教育美术学 编辑:程序博客网 时间:2024/04/28 12:52
  给大家分享一个老夫刚刚弄懂的代码,说实话,博主对这个填充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 0
原创粉丝点击