你的任务是打印如样例的矩阵。
Description
多组输入
一个整数n(0<n<10).
一个整数n(0<n<10).
Input
一个矩阵。
Output
1
|
3
|
Sample Input
1
2
3
4
5
6
|
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
|
Sample Output
换行用\r\n
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n;
int a[100][100];
while (scanf("%d", &n) != EOF)
{
int count = 1;
int x=0, y=0;
memset(a, 0, sizeof(a));
a[x][y] = 1;
int t = 2 * n - 1;
while (count <= n)
{
while (y + 1 < t && !a[x][y + 1])
{
a[x][++y] = count;
}
while (x + 1 < t&& !a[x + 1][y])
{
a[++x][y] = count;
}
while (y - 1 >= 0 && !a[x][y - 1])
{
a[x][--y] = count;
}
while (x - 1 >= 0 && !a[x - 1][y])
{
a[--x][y] = count;
}
/*for (int i = 0;i < t;i++)
{
for (int j = 0;j < t;j++)
printf("%4d", a[i][j]);
printf("\n");
}
printf("\n");*/
x = y = count;
count++;
}
a[n - 1][n - 1] = n;
for (int i = 0;i < t;i++)
{
for (int j = 0;j < t;j++)
{
if (j != 0)
printf(" %d", a[i][j]);
else
printf("%d", a[i][j]);
}
printf("\r\n");
}
}
return 0;
}