编程输出对称图形,图形上半部分的行数由键盘输入

#include"stdio.h"
#include"stdlib.h"
#include "math.h"
main()
{ int n,i,j;
scanf("%d",&n);
for( i=1; _________; i++)
{ for( j=1; ____________; j++)
printf(" ");
for( j=1; ; j++)

printf("*");
printf("\n");
}
for(i=1;i<=n-1;i++)
{ for(j=1;j<=2*(n-i)-1;j++)
printf("*");
printf("\n");
}
}

你的程序很奇怪,因为下面左边没有空格,为什么上面要输出空格呢。还有
for( j=1; ; j++)
这里如果不加上条件,输出的是死循环

#include"stdio.h"
#include"stdlib.h"
#include "math.h"

int main()
{ 
    int n,i,j;
    scanf("%d",&n);
    for(i=1; i < n; i++) //1
    { 
        for(j=1; j < 0; j++) //2
            printf(" ");
        for(j=1; j < i * 2; j++) //3
            printf("*");
        printf("\n");
    }
    for(i=1;i<=n-1;i++)
    { 
        for(j=1;j<=2*(n-i)-1;j++) 
            printf("*");
        printf("\n");
    }
}

所以必须改这3个地方
结果:
图片说明

还有一种写法,下面的就要改,但是似乎更合理一些:

#include"stdio.h"
#include"stdlib.h"
#include "math.h"

int main()
{ 
    int n,i,j;
    scanf("%d",&n);
    for(i=1; i < n; i++)
    { 
        for(j=1; j < i; j++)
            printf(" ");
        for(j=1; j < i * 2; j++)
            printf("*");
        printf("\n");
    }
    for(i=1;i<=n-1;i++)
    { 
        for(j=1; j < n-i; j++)
            printf(" ");
        for(j=1;j<=2*(n-i)-1;j++) 
            printf("*");
        printf("\n");
    }
}

图片说明