为什么函数 j 的值不递减?

Why is the value of function j not decrementing?

我一直在尝试将输出作为 --

*****

****

***

**

*

在不同的行中,但 Xcode 在每行中显示 5 颗星。如何获得函数 j 的递减值?

#include <stdio.h>
int main()
{
    int i,j;
    for(i=1;i<=5;i++)
    {
        for(j=5;j>=1;j--)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

我想你想要的是

for(j = (5-i+1);j >= 1;j--)

你在设置嵌套for循环时犯了一个错误。计数器j应该从5-i+1开始。

改变

for(j = 5;j >= 1; j--)

for(j = 5;j >= i; j--)  

Demo

你的代码有点counter-intuitive;你应该让外循环保存你想要在该行上的星星数,而内循环保存当前的星星数:

for (int stars = 5; stars > 0; stars--) {
    for (int count = 0; count < stars; count++) {
        printf("*");
    }
    printf("\n");
}

(一般用> 0代替>= 1)。