题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:

输入一个矩阵如下:


则依次打印出数字:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10

这道题的类似于:http://www.cnblogs.com/vpoet/p/4660520.html(LeeCode-Spiral Matrix 11)

 

其实主要还是考察我们对二维数组的循环操作:

代码实现如下:

 #include <iostream>
using namespace std; void PrintMatrixClockwisely(int** numbers,int columns,int rows)
{
cout<<endl<<"The Matrix is: "<<endl;;
for(int i=;i<rows;i++)
{
for(int j=;j<columns;j++)
{
cout<<numbers[i][j]<<" ";
}
cout<<endl;
} cout<<endl<<"The Output Array of Matrix is: "; int count=;
int left=;
int top=;
int bottom=rows-;
int right=columns-;
while(count<(columns*rows))
{
for(i=left;i<=right;i++)
{
cout<<numbers[left][i]<<" ";
count++;
}
top++; for(i=top;i<=bottom;i++)
{
cout<<numbers[i][right]<<" ";
count++;
}
right--; for(i=right;i>=left;i--)
{
cout<<numbers[bottom][i]<<" ";
count++;
}
bottom--; for(i=bottom;i>=top;i--)
{
cout<<numbers[i][left]<<" ";
count++;
}
left++; }
} void main()
{
int **nums;
int cols;
int rows;
int i,j;
cout<<"Please input the rows: ";
cin>>rows; cout<<"Please input the cols: ";
cin>>cols; nums=new int*[rows];
for(i=;i<rows;i++)
nums[i]=new int[cols]; for(i=;i<rows;i++)
{
cout<<"Please input the "<<i+<<"th"<<" rows: "<<endl;;
for(j=;j<cols;j++)
{
int data;
cin>>data;
nums[i][j]=data;
}
} PrintMatrixClockwisely(nums,cols,rows); for(i=;i<rows;i++)
delete[] nums[i];
delete[] nums;
return;
}

运行截图:

剑指offer-面试题20.顺时针打印矩阵的更多相关文章

  1. 剑指Offer:面试题20——顺时针打印矩阵(java实现)

    题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数 字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, ...

  2. 剑指 offer面试题20 顺时针打印矩阵

    [题目描述] 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, ...

  3. 【剑指offer】题目20 顺时针打印矩阵

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1   2   3  4 5   6   7  8 9  10 11 12 13 14 15 16 则依次打印出 ...

  4. 剑指Offer - 九度1391 - 顺时针打印矩阵

    剑指Offer - 九度1391 - 顺时针打印矩阵2013-11-24 04:55 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 ...

  5. 剑指offer十九之顺时针打印矩阵

    一.题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...

  6. 剑指offer(19)顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...

  7. 【剑指Offer】19、顺时针打印矩阵

      题目描述:   输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依 ...

  8. 牛客网剑指offer第19题——顺时针打印矩阵

    这个题看似很简单: 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 ...

  9. 剑指offer面试题5 从头到尾打印链表(java)

    注:(1)这里体现了java数据结构与C语言的不同之处 (2)栈的操作直接利用stack进行 package com.xsf.SordForOffer; import java.util.Stack; ...

  10. 剑指offer面试题5 从头到尾打印链表(c)

随机推荐

  1. 《UNIX环境高级编程》笔记--chown,fchown和lchown函数

    这三个函数都是用来更改文件的用户ID和组ID的,函数的定义如下: #include <unistd.h> int chown(const char *pathname, uid_t own ...

  2. windows media player 中播放pls的方法

    windows media player目前只能播放 wpl 和 asm格式的列表文件.而linux下mplayer和vlc支持的pls,很遗憾没法支持. 不过,老外写了个“open pls in w ...

  3. 【转】Linux下查看TCP网络连接情况

    查看TCP网络连接情况 命令:netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ www.2cto.com 返回结 ...

  4. Smart ——jiaoyou模板

    <!--{foreach $vip_data as $key=>$volist}-->    <!--{if $key==0 ||$key==1||$key==5||$key= ...

  5. JavaScript 基础一

    内部: <Script Language="JavaScript" type="text/javascript"> JavaScript代码 < ...

  6. python json基础学习01

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import json #全称(javascript object  ...

  7. Tcp通讯协议

    了解了Udp通讯协议之后,我们再认识一个常用的通讯协议:Tcp Tcp传输特点: --依赖于Socket和ServerSocket对象 --建立客户端和服务端 --建立连接后,通过Socket中的 I ...

  8. 零拷贝概念 -- linux内核

    零拷贝(zero-copy) 备快速网络接口的主要技术. 零拷贝技术通过降低或消除关键通信路径影响速率的操作,降低传输数据的操作系统开销和协议处理开销,从而有效提高通信性能,实现快速传输数据. 零拷贝 ...

  9. mybatis于Date和DateTime现场插入

    最近,该公司使用MyBatis3做数据持久层,有在该领域Date和DateTime种类,只有在插入数据时属性设置为一个实体Timestamp将相应mysql的DateTime类型.Date会相应mys ...

  10. linux下查看文件及目录个数

    linux下查看文件及目录个数1.查看当前文件和目录总数(不包括子目录):ls -l | wc -l 2.查看当前目录下文件个数(不包括子目录):ls -l |grep "^-"| ...