前言:
此时姐妹们对“螺旋矩阵c语言顺时针”都比较珍视,看官们都需要分析一些“螺旋矩阵c语言顺时针”的相关知识。那么小编也在网络上汇集了一些有关“螺旋矩阵c语言顺时针””的相关内容,希望兄弟们能喜欢,兄弟们一起来了解一下吧!给定一个m行、nn列的矩阵,按照顺时针螺旋的顺序输出矩阵中所有的元素(从[0][0]位置开始,具体请参见下图)。
输入格式
测评机会反复运行你写的程序。每次程序运行时,首先在第一行输入m,n 整数,分别对应题目描述中的 m 和 n(1 ≤ m, n ≤ 100),之间用一个空格分隔。接下来输入 m 行,每行包含 n 个整数,每两个整数之间用一个空格分隔。
输出格式
输出为一行,包括 m × n 个整数,按照题目要求的顺序依次输出所有矩阵元素,任意两个整数之间用一个空格分隔,最后一个整数后面没有空格。
#include<stdio.h>int m, n, cnt = 0;int matrix[105][105];int i,j;int printf_matrix(int i, int j){ printf("%d", matrix[i][j]); cnt++; if (cnt == n * m) return 1; printf(" "); return 0;}int main(){ scanf("%d%d", &m, &n); for (i =0; i < m; i++){ for (j = 0; j < n; j++){ scanf("%d", &matrix[i][j]); } } int l = 0, r = n-1, t=0, b=m-1, flag = 0; while (1){ // 从左到右 for (i = t,j = l; j <= r; j++){ //输出矩阵 flag = printf_matrix(i, j); if (flag == 1){ l = n; break; } } // 从上到下 t++; for (i = r, j = t; j <= b; j++){ //输出矩阵 flag = printf_matrix(j,i); if (flag == 1) { t = m; break; } } // 从右到左 r--; for (i = b, j = r; j >= l; j--){ //输出矩阵 flag = printf_matrix(i,j); if (flag == 1) break; } // 从下到上 b--; for (i = l, j = b; j >= t; j--){ // 输出矩阵 flag = printf_matrix(j,i); if (flag == 1) break; } l++; if (flag == 1) break; } printf("\n"); return 0;}
标签: #螺旋矩阵c语言顺时针