如何获得像翻转弗洛伊德三角形那样的输出?解决这个问题的最佳方法是什么?
示例:
5555
_555
__55
___5
注意:_是一个空格
已经尝试了很多代码,但仍然无法得到这样的输出。
我的代码之一:
#include<stdio.h>
int main () {
int a,b,c,n;
scanf("%d",&n);
for(a=1;a<=n;a++) {
for(b=n;b>=a;b--) {
printf(" ");
}
for(c=1;c<=a;c++) {
printf("*");
}
printf("\n");
}
}
最佳答案
这不是最好的方法...但代码与您发布的代码类似。
int main()
{
int a, b, c, n;
scanf("%d", &n);
for (a = n; a > 0; a--)
{
for (b = n; b >= a; b--)
{
printf(" ");
}
for (c = 1; c <= a; c++)
{
printf("*");
}
printf("\n");
}
}
在原来的帖子中,您的第一个 for 循环是
for(a=1;a<=n;a++)
这意味着第二个 for 循环将打印 n*space,第三个 for 循环将打印 1 颗星。 将第一个 for 循环更改为
for (a = n; a > 0; a--)
一切都会反转,因此第一个循环将不打印空格,最后一个循环将打印 n*stars。
关于C - 嵌套 for 循环模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46586177/