龙空技术网

每日一题 || C语言刷题

合鸣山下带发修行学AI 256

前言:

此时姐妹们对“螺旋矩阵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语言顺时针