编写程序 shrink.c ,根据用户指定的n(0>n>10)输出放射状数字图案:

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:44:56
编写程序 shrink.c ,根据用户指定的n(0>n>10)输出放射状数字图案:

例:n = 4 时输出:

1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 1
1 2 3 3 3 3 2 1
1 2 3 4 4 3 2 1
1 2 3 4 4 3 2 1
1 2 3 3 3 3 2 1
1 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1

n = 5 时输出:

1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 1
1 2 3 3 3 3 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 3 3 3 3 2 1
1 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1

void shrink(int n)
{
int i;
int j;
int k;
int m;
int line;

line = (n % 2 == 0) ? (n + n) : (n + n - 1);
for(i = 0; i < line; i++)
{
if (i < n)
k = i;
else
k = line - i - 1;

for(j = 0; j < k; j++)
{
printf(" %d", j + 1);
}
m = line - k - k;
for(j = 0; j < m; j++)
{
printf(" %d", k + 1);
}
for(j = k; j > 0; j--)
{
printf(" %d", j);
}
printf("\n");
}
}