输入行数 n 和首数字字符,在屏幕上输出由数字围起的高和下底宽度均 n 的空心梯形。 要求:输出的数字是循环的,即输出数字 9 后再输出的数字是 0,此外数字是左右对称的,如图。
输入:
行数n 和首字符
输出:
对称的数字空心梯形
# include<stdio.h>
# include<math.h>
int main()
{
int n , i, j, k, l, r, num;
scanf("%d %d", &n, &num);
i = 0;
l = num;
r = num;
while (i < n)
{
j = 0;
k = 0;
while (j < i)
{
printf(" ");
j ++;
}
if(i == 0 )
{
k = 0;
while (k < (3*n-1)/2)
{
printf("%d", l % 10);
l ++;
k ++;
}
k = 0;
if((3*n-2) % 2 == 1 )
{
r = abs(l -2);
while (k < (3*n-1)/2 -1)
{
printf("%d", abs(r % 10));
r --;
k ++;
}
}
else
{
r = l -1;
while (k < (3*n-1)/2)
{
printf("%d", r % 10);
r --;
k ++;
}
}
printf("\n");
l = num;
r = num;
}
else if(i != 0 && i != n -1)
{
k = 0;
l ++;
r ++;
printf("%d", l % 10);
while (k < 3*n-2-2*i - 2)
{
printf(" ");
k ++;
}
printf("%d\n", r % 10);
}
else
{
k = 0;
while (k < (3*n-2-2*i)/2)
{
l ++;
printf("%d", l % 10);
k ++;
}
k = 0;
if((3*n-2-2*i) % 2 == 1 )
{
r = l +1;
while (k < (3*n-2-2*i)/2 +1)
{
printf("%d", abs(r % 10));
r --;
k ++;
}
}
else
{
r = l;
while (k < (3*n-2-2*i)/2)
{
printf("%d", abs(r % 10));
r --;
k ++;
}
}
printf("\n");
}
i ++;
}
return 0;
}