用双重for循环打印星号三角形,行数由键盘输入的整数决定

用双重for循环打印星号三角形,行数由键盘输入的整数决定
请问我的代码哪里错了?

img

#include <stdio.h>
int main(){
    int n,i,j;
    printf("输入行数:");
    scanf("%d",&n);
    for(i=n;i>0;i--){
    for(j=0;j<=n-j;j++)printf("* ");
    printf("\n");
    }
} 

img

j<=n-j?
应该是j<=n-i吧
另,为啥不用i++,而要写i--,你这整个逻辑都是个反的,负负得正了属于

#include <stdio.h>
int main() {
    int n,i,j;
    printf("输入行数:");
    scanf("%d",&n);
    for(i=n; i>=0; i--)
    {
        for(j=0; j<i; j++)
            printf("* ");
        printf("\n");
    }
}
#include <stdio.h>
int main(){
    int n,i,j;
    printf("输入行数:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-i;j++)
          printf("*");
         printf("\n");
    }
} 
 

第七行有问题

#include"stdafx.h"

#include <stdio.h>

int main() {

    int n, i, j;

    printf_s("输入行数:");

    scanf_s("%d", &n);

    for (i = n; i>0; i--) {

        for (j = 0; j < i; j++)printf_s("* ");

        printf_s("\n");

    }

    getchar();
    getchar();

    return 0;
}

j=0;j<=n-j;j++,
当j=4时,4<6-4不成立,所以每行打印4个星号,应该用j<=n-i