一个C问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:05:19
让打一印一个全是
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
main()
{int i,j,k;
for(i=0;1<=3,i++)
{for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{for(j=0;<=2;i++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
}
运行后得到的上面的图,,但这个程序我 是怎么也没有看明白电脑是 怎么运行的,能不能用文字说明一下,该程序的运行过程过,我刚学,而且是自学,有点菜,请高手用文字说明啊,我给加分啊,谢谢,

首先要说你这段代码的小毛病太多了。应该是这样的:
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
printf("*");
}
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(k=1;k<=7-i*2;k++)
{
printf("*");
}
printf("\n");
}
}
看代码要把你自己想成计算机,拿出纸和笔:这个程序用了嵌套循环,循环的顺序是内层循环结束后,才外层循环;首先“for(i=1;i<=4;i++)”时i=1。接着来“for(j=1;j<=4-i;j++) printf(" "); “时j=1。然后循环打印3个空格。循环三次后j=4了,不符合j<=4-i的条件,退出循环。然后执行for(k=1;k<=2*i-1;k++) printf("*"); 打印一个*。然后退出循环。printf("\n");是换行的意思。内层循环结束。在执行外层循环,i=1。接着for(j=1;j<=4-i;j++) printf(" "); 这时4-i=2。所以循环打印两个空格。接着for(k=1;k<=2*i-1;k++) printf("*"); 循