回 帖 发 新 帖 刷新版面

主题:有没有帮我解释一下这个

void main(){
int i,j,k;
for(i=1;i<=3;i++)
{ for(j=1;j<=3-i+5;j++)
printf(" ");
for(k=1;k<=2*i-1+5;k++)
{
if(k<=5) printf(" ");
else printf("*");
}
printf("\n");
}
}

为什么会是
          *
         * *
        * * *
怎么解??

回复列表 (共3个回复)

沙发

void main()
{
   int i,j,k;
   for(i=1;i<=3;i++)//要输出的行数
   { 
       for(j=1;j<=3-i+5;j++)//先最少要输出的 空格数
           printf(" ");
       for(k=1;k<=2*i-1+5;k++)//按递减的方式输出空格数,再输出"*"
       {
           if(k<=5) printf(" ");
           else printf("*");
        }
        printf("\n");//回车换行
   }
}
就是数格子,你数数看

板凳

for循环是先里面的for{for循环},然后再整个外围循环吗?

3 楼

是的
不然你以为呢?
还有继续提示:
void main是不符合规范的写法,属于不良编程风格
int main才符合标准c

我来回复

您尚未登录,请登录后再回复。点此登录或注册