zoukankan      html  css  js  c++  java
  • 控制台输出螺旋型数字

    先上最终效果图

     

    对输入的指定数组规模做一个螺旋型的数字输出:

    假设输入3,输出如下:

    1  2  3

    8  9  4

    7  6  5

     

    按照这种顺序进行。

    实现代码如下:

     1 #include <iostream>
     2 #include<iomanip>
     3 using namespace std;
     4 
     5 void inputGrid(int n,int *m)
     6 {//n表示规模,m为二维数组指针
     7     int row=0,line=0,flag=0;//row,line表示第几次行处理或列处理;
     8     int i=0,j=-1;
     9     for(int num=1;num<=n*n;)
    10     {
    11         if(!flag)
    12         {
    13             //行处理
    14             int addnum;
    15             if(row%2==0)addnum=1;//往前走
    16             else addnum=-1;//往回走
    17             int num_row=n-row;
    18             while(num_row)
    19             {//将本行剩余空白列全部填满
    20                 num_row--;
    21                 j+=addnum;
    22                 *(m+n*i+j)=num;
    23                 num++;
    24             }
    25             row++;
    26             flag=1;
    27 
    28         }
    29         else
    30         {
    31             //列处理
    32             int addnum;
    33             if(line%2==0)addnum=1;//往前走
    34             else addnum=-1;//往回走
    35             int num_line=n-line-1;
    36             while(num_line)
    37             {//将本列剩余空白项全部填满
    38                 num_line--;
    39                 i+=addnum;
    40                 *(m+n*i+j)=num;
    41                 num++;
    42             }
    43             line++;
    44             flag=0;
    45         }
    46     }
    47     /*for(int i=0;i<n*n;i++)
    48     {
    49         *(m+i)=i;
    50     }*/
    51 }
    52 
    53 int main()
    54 {
    55     int n=1;
    56     int *m,*tm;
    57     while(n!=-1)
    58     {
    59     cout<<"请输入回形数规模:(输入-1退出)";
    60     cin>>n;
    61     if(n==-1)
    62         return 0;
    63     m=(int *)malloc(n*n*sizeof(int));
    64     inputGrid(n,m);
    65     for(int i=0;i<n;i++)
    66     {
    67         tm=m+n*i;
    68         for(int j=0;j<n;j++)
    69         {
    70             cout<<setw(3)<<*(tm+j)<<" ";
    71         }
    72         cout<<"\n";
    73     }
    74     }
    75     //return 0;
    76 }
  • 相关阅读:
    Thread中的join使用
    java.lang.NoClassDefFoundError: Ljavax/enterprise/inject/spi/BeanManager;
    org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xm
    maven 中使用jstl 错误解决
    eclipse 安装maven
    前端 JS事件操作
    前端 JS
    前端 固定位置 与绝对定位
    前端 显示与隐藏
    前端 盒子阴影
  • 原文地址:https://www.cnblogs.com/hanyulcf/p/1683098.html
Copyright © 2011-2022 走看看