因此,输出结果应该是循环数(1,2,3,...)组成的递增三角形和星号组成的递减三角形,如下所示:
1********
12*******
123******
1234*****
12345****
123456***
1234567**
12345678*
123456789
到目前为止,我有这个,但只是不知道如何减少星级。
#include <stdio.h>
int main()
{
int i, j;
for(i=1; i<=9; i++)
{
for (j=1; j<=i; j++)
{
printf ("%d",j);
}
int k;
for(k=8; k>0; k--) {
printf("*");
}
printf("\n");
}
}
它会打印出:
1*******
12*******
123*******
1234*******
12345*******
123456*******
1234567*******
12345678*******
123456789*******
5条答案
按热度按时间hfwmuf9z1#
您已经:
*
。这总是打印8星,但你想要其中的9-i。
*
。oxcyiej72#
注意,您需要做的只是从预期的(在本例中)9个字符中减去每行打印的数字数量。
for(k=9 - i; k>0; k--)
输出:
ztyzrc3y3#
printf
具有仅打印字符串的有限部分的内置功能。这对于解决以下问题非常方便:
输出
IDE Link
9w11ddsr4#
从一个由9颗星组成的可变字符串开始,然后在循环9次时一次替换一个字符(即:每行输出一次)。
pdsfdshx5#
你需要3个循环。
1.最外层循环(i)跟踪行号
1.第一个内部循环(j)将按等于行数的顺序打印数字
1.第二个内循环(k)将打印 *,因此打印的 * 数为总行数-行号,即(9-i)
https://godbolt.org/z/e65def4P5