螺旋队列的打印

来源:互联网 发布:云计算架构师是干嘛的 编辑:程序博客网 时间:2024/05/16 11:25

之前写过一篇螺旋矩阵的打印,那次是从外向内旋转,这次改成从内向外旋转,网上搜的资料基本都只有奇数的情况下,我稍微扩充了一下偶数,这种打印矩阵的题就是麻烦,要找规律然后不断的进行调试,废话少说,把我的方法贴出来以后自己看看也能有点提高。今天实在是不想详细写了。

代码:

// test3.cpp : 定义控制台应用程序的入口点。//打印螺旋矩阵/* * 21 22 23 24 25 * 20  7  8  9 10   * 19  6  1  2 11 * 18  5  4  3 12 * 17 16 15 14 13 *//*发现规律1.n为奇数,最后一位在左上角,n为偶数,最后一位在右下角2.找到初始值1的位置,n为1,2的时候,初始值在(0,0),n为3,4的时候,初始值在(1,1)结论,初始值的位置为((n-1)/2,(n-1)/2)*/#include "stdafx.h"#include <iostream>#include <cmath>#include <iomanip>using namespace std;void print(int n, int **data){for(int i=0; i<(n+1)/2; i++){data[(n-1)/2-i][(n-1)/2+i]=(1+2*i)*(1+2*i);}//深入内心,层层剥茧for(int i=0; i<(n+1)/2; i++){   //上方(从左到右)double temp=data[i][n-i-1];int s=sqrt(temp);for(int j=0; j<n-i*2-1; j++){data[i][n-i-s+j]=data[i][n-i-1]-s+1+j;}//左方(从上到下)for(int j=1; j<=n-1-2*i; j++)//n-i*2-1{data[i+j][i]=data[i][i]-j;}//下方for(int j=1; j<=n-i*2-1; j++){data[n-i-1][j+i]=data[n-i-1][i]-j;}//右方for(int j=1; j<n-1-2*i; j++){data[i+j][n-1-i]=data[n-1-i][n-1-i]-s+j+1;}}}int _tmain(int argc, _TCHAR* argv[]){int **data;int n;cout<<"请输入矩阵的行列数:";cin>>n;//建立二维矩阵data=new int *[n];for(int i=0; i<n; i++){data[i]=new int [n];}//初始化二维矩阵for(int i=0; i<n; i++){for(int j=0; j<n; j++){data[i][j]=0;}}//n为偶数if(n%2==0){print(n-1,data);//最后一列和最后一行for(int i=0; i<n; i++){data[i][n-1]=data[0][n-2]+i+1;}for(int i=0; i<n-1; i++){data[n-1][i]=data[n-1][n-1]+n-1-i;}}//n为奇数if(n%2==1){print(n,data);}//打印二维矩阵for(int i=0; i<n; i++){for(int j=0; j<n; j++){cout<<setw(3)<<data[i][j]<<" ";}cout<<endl;}//销毁二维矩阵for(int i=0; i<n; i++){delete [] data[i];}delete [] data;system("pause");return 0;}

结果:



1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 ebay账号邮箱忘了怎么办 易贝账号邮箱忘了怎么办 运动鞋网上擦了黑鞋油怎么办 真皮鞋用水洗了怎么办 支付宝余额限额了怎么办 微信余额转账限额怎么办 微信充值话费充错了怎么办 京东白条月限额怎么办 淘手游上买的账号被找回了怎么办 手机看视频缓冲慢怎么办 wan口状态未连接怎么办 王者荣耀本地回放过期怎么办 qq邮件发错了怎么办 千叶钻戒换款怎么办 车钥匙掉厕所了怎么办 宿舍有个整晚磨牙的室友该怎么办 百度云照片压缩后模糊怎么办 手机点+号无法上传图片怎么办 支付宝账户支付功能关闭怎么办 一件衣服买小了怎么办 交行u盾密码忘了怎么办 老婆婚内出轨丈夫应该怎么办 微信小程序获取用户信息失败怎么办 拼多多砍价没有完成怎么办 微信人数上限了怎么办 微信5000人满了怎么办 微信朋友满了怎么办啊 失业金签到忘签怎么办 gec安全密码忘了怎么办 唯品会微信商城地址错怎么办跨省 电脑突然没网了怎么办 移动光猫只能连一台电脑怎么办 网上银行用户名和密码忘了怎么办 中国银行网银用户名忘了怎么办 中行企业网银证书过期怎么办 腾讯会员被别人登录了怎么办 微信限90天提现转帐功能怎么办? 星巴克券过期了怎么办 京东买面膜发个空包怎么办 手机低于4.4版本怎么办才能恢复 263云通信密码忘了怎么办