面试题20—顺序打印矩阵

来源:互联网 发布:秒杀java实现代码 编辑:程序博客网 时间:2024/05/16 14:07
题目:输入一个矩阵,按照从外向里顺时针顺序依次打印出每一个数字。

代码示例:

#include<iostream>#include<iomanip>using namespace std;const int n = 6;const int m = 5;void PrintClockWise(int a[][m], int n){int line = (n + 1) / 2;for (int i = 0; i < line; i++){for (int j = i; j < m - i; j++)cout << a[i][j] << " ";for (int j = i + 1; j < n - i - 1; j++)if (m-i-1>=0)cout << a[j][m - i - 1] << " ";for (int j = m - i - 1; j >= i; j--)if (n-i-1!=i&&n-i-1>=0)cout << a[n - i - 1][j] << " ";for (int j = n - i - 2; j >= i + 1; j--)if (i!=m-i-1&&m-i-1>=0)cout << a[j][i] << " ";}cout << endl;}void main(){int a[n][m] = { { 1, 2, 3, 4, 5}, { 7, 8, 9, 10, 11}, { 13, 14, 15, 16, 17}, { 19, 20, 21, 22, 23}, { 25, 26, 27, 28, 29}, { 31, 32, 33, 34, 35 } };//int a[n][m] = { 1 };//int a[n][m] = { 1, 2, 3, 4, 5};//int a[n][m] = { 1, 2, 3, 4, 5};for (int i = 0; i < n; i++){for (int j = 0; j < m; j++)cout << setw(4)<<a[i][j];cout << endl;}PrintClockWise(a, n);}


原创粉丝点击