输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如,输入如下矩阵:
专注于为中小企业提供成都做网站、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业屏山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。
其实顺时针的打印,无非就是先打印出矩阵最外面的第一行,然后是最后一列,然后是最后一行,最后是第一列,每一次打印时控制的条件也就是矩阵的行和列的边界,那么打印完一圈之后只需要改变打印的范围也就是首尾行和首尾列就可以再打印里面的矩阵;
程序设计如下:
#include#include using namespace std; void ClockwisePrintArr(int arr[][5], size_t row, size_t col) { assert(arr && row && col);//条件判断 int (*tmp)[5] = arr; //第一次开始的行为0,列也为0,打印终止的行为形参行数,列也为形参列数 int start_row = 0; int start_col = 0; int end_row = row; int end_col = col; //判断条件当开始边界小于终止边界的时候 while((start_row < end_row) && (start_col < end_col)) { //打印矩阵第一行 for(int i = start_col; i < end_col; ++i) { cout< = start_col; --i) { cout< start_row; --i) { cout< 运行程序:
《完》
网页标题:顺时针打印矩阵——20
标题URL:http://cdxtjz.cn/article/gdgoes.html