你这外层for循环每次只是输出一行的空格和*号,所以最后要输出换行
#include <stdio.h>
int main( )
{
int i,j,n; //n代表上三角行数
scanf("%d",&n);
//先输出上三角
for(i=1;i<=n;++i) //输出n行
{
//输出第i行
for(j=1; j<=n-i; ++j) //输出n-i个空格
printf(" ");
for(j=1; j<=2*i-1; ++j) //输出2*i-1个星号
printf("*");
printf("\n");
}
//下面输出下三角
for(i=1;i<=n-1;++i) //输出n-1行
{
//输出第i行
for(j=1; j<=i; ++j) //输出i个空格
printf(" ");
for(j=1; j<=2*(n-i)-1; ++j) //输出2*i-1个星号
printf("*");
printf("\n");
}
return 0;
}