c语言打印星号问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 14:48:44
九行九列的菱形星号
void main()
{
int i, j, k;
/* 变量i从0到4,表示所画菱形图的第一至第五行 */
for(i = 0; i <= 4; i++)
{
/* 当行数为i时,空格数是i的函数,为4-i个 */
for(j = 0; j <= 3-i; j++) //说是什么函数4-i,怎么变3-i了?
printf(" ");
/* 星号数也是i的函数,为2i+1个 */ //如果第一行的星号数 用2i+1的函数 那么 2*1+1=3?难到第一行就输出三个星吗?
for(k = 0; k <= 2*i; k++) //说2i+1怎又变 2i了?
printf("*");
printf("\n");
}
/* 变量i从0到3,表示所画菱形图的第六至第九行 */
for(i = 0; i <= 3; i++)
{
/* 当行数为i时,空格数是i的函数,此时为i个 */
for(j = 0; j <= i; j++)
printf(" ");
/* 星号数也是i的函数,此时为7-2i个 */
for(k = 0; k <= 6-2*i; k++)
printf("*");
printf("\n");
}
}
--------------
帮我讲讲好吗,学C的时侯老师就开始让我们弄星号.现在我看到星星就蒙.
请明白的朋友帮我讲讲,上来说风凉话的朋友你的时间很多吗?不敢耽误你时间啊!请你忙你自已的好吗?
我发现老是有这样的人,真的觉得很无耐
如果眼睛没什么问题的话,

for(j = 0; j <= 3-i; j++) //说是什么函数4-i,怎么变3-i了?
因为 j的初始值是0不是1;

//如果第一行的星号数 用2i+1的函数 那么 2*1+1=3?难到第一行就输出三个星吗?
第一行的行号,你定义的是0,不是1;

for(k = 0; k <= 2*i; k++) //说2i+1怎又变 2i了?
因为 k的初始值是0不是1;

你那程序,太长!不简洁!给你个简单的!
main()
{
int i=0,j=0,n,k,l;
for(i=0;n=fabs(i-4),i<=9;i++,printf("\n"))
{
for(k=0;k<=n;k++)printf(" ");
for(l=0;l<(5-n)*2-1;l++)printf("*");
}
}

你都写出注释来了~还要人家怎么说
这很简单~
i控制行j控制个数