我要投稿

控制台输出螺旋型数字

时间:2010-03-12 07:29 作者:ceshi123 阅读:2668

扫描二维码关注公众号,可以查询淘宝、京东商品优惠券
 先上最终效果图


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

  假设输入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 }

最新评论

我要投稿 我要评论
插入url链接 添加表情
限 100000 字节
响应相关主管单位规定,关闭回帖发帖功能
[VB毕业设计] [ASP毕业设计] [JAVA毕业设计] [JSP毕业设计] [PHP毕业设计] [asp.net毕业设计] [.net毕业设计] [网络毕业设计] [Delphi毕业设计] [VC毕业设计] [VF毕业设计] [机械毕业设计] [工艺毕业设计] [模具毕业设计] [其他毕业设计]
站长联系 cccbbsnet#163.com 本站系公益性质网站,站内广告维系本站运作。欢迎赞助本站。
大学生计算机相关方向|软件编程|网络工程|web开发|数据库技术|学习资料等
本社区仅供学习计算机相关技术所使用,访客发言不得违反国家法律法规
Time now is:01-23 06:04, Gzip enabled 蜀ICP备07004838号Powered by cccbbs.net v7.5 SP3 Code © 2003-06 cccbbs
计算机毕业设计