题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void print(int (*p)[1], int, int, int, int);
int main()
{
int array[3][1] = {1,2,3};
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
print(array, 0, 3, 0, 1);
printf("\n");
system("pause");
return 0;
}
void print(int (*array)[1], int a, int b, int c, int d)
{
int i;
int flag = 1;
for (i = c; i < d; i++)
{
printf("%d ", array[a][i]);
flag = 0;
}
for (i = a + 1; i < b; i++)
{
printf("%d ", array[i][d - 1]);
flag = 0;
}
for (i = d - 2; i >= c ; i--)
{
if (a == (b - 1))
{
break;
}
printf("%d ", array[b - 1][i]);
flag = 0;
}
for (i = b - 2; i >= a + 1; i--)
{
if (c == (d - 1))
{
break;
}
printf("%d ", array[i][c]);
flag = 0;
}
if (flag == 1)
{
return;
}
print(array, a + 1, b - 1, c + 1, d - 1);
}