给定一个 m 行、n 列的矩阵,请按照顺时针螺旋的顺序输出矩阵中所有的元素(从[0][0]位置开始,具体请参见下图)。

C语言矩阵螺旋输出_i++

#include <stdio.h>

int main() {
int matrix[100][100];
int m;
int n;
int i,j;
int up = 0, left = 0;
int index = 0;
int num = 0;
scanf("%d %d",&m,&n);
int down = m - 1, right = n - 1;
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}


while (up <= down && left <= right) {

if (index == 0) {
i = up;
for (j = left; j <= right; j++){
printf("%d",matrix[i][j]);
num++;
if (num < m*n) printf(" ");
else return 0;
}
up++;
index++;
}

else if (index == 1) {
j = right;
for (i = up; i <= down; i++) {
printf("%d",matrix[i][j]);
num++;
if (num < m*n) printf(" ");
else return 0;
}
right--;
index++;
}

else if (index == 2) {
i = down;
for (j = right; j >= left; j--){
printf("%d",matrix[i][j]);
num++;
if (num < m*n) printf(" ");
else return 0;
}
down--;
index++;
}

else if (index ==3){
j = left;
for (i = down; i>=up; i--) {
printf("%d",matrix[i][j]);
num++;
if (num < m*n) printf(" ");
else return 0;
}
left++;
index = 0;
}

}




return 0;
}