为什么我写了k<=2*i-1,然后他说我的是错的,感觉k<2*i-1才是错的
终于搞懂了
k=0时,k<2*i-1;k=1时,k<=2*i-1
看你的k初始化为多少
int i, j, k;
for(i=1; i<5; i++)
{
for(j=1;j<=4-i;j++)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++ )
{
printf("*");
}
printf("\n");
}
return 0;
}int i, j, k;
for(i=1; i<5; i++)
{
for(j=1;j<=4-i;j++)
{
printf(" ");
}
for(k=0;k<2*i-1;k++ )
{
printf("*");
}
printf("\n");
}
return 0;
}很好理解的嘛,因为它的星号是1,3,5,7……对应第1,2,3,4……行,所以就是2*i-1;然后例如,当你初始化k为0时,在打印第一行时,你的星号就只能输出一次,所以k<1;第2,3,4……也是这样的道理,当你初始化k=1时,就可以k<=2*i-1了~嘻嘻