wmw暗 发表于 2017-10-7 23:32:18

为什么一定要这样

我要运行出这样的图案为什么代码一定要这样
#include<stdio.h>
void main()
{
        int i,j;
        for(i=1;i<7;i++)
        {
                for(j=1;j<=i;j++)
                {
                        putchar('*');
                }printf("\n");
        }
       
}
我把printf("\n");放在了后面的括号后面就运行不出这样的图案了呢

lizechen 发表于 2017-10-8 00:14:44

此处是打印完一行星一换行,如果放到后边括号在,就会变成全部打印完换行,回答完毕

丶忘却的年少o 发表于 2017-10-8 10:08:12

你想一下执行的顺序是什么?
是不是先执行外面的for循环,然后进来执行里面的for循环。外层的for控制的是行数,里面的for控制的是每行的个数。结合你的需要,执行完里面for循环个数的打印后是不是要换行再重新打印个数,那么程序的结构就很清晰了,里面的for执行晚先去换行,然后再判断行数有没有i<7,有就进入循环继续打印个数。
如果你把printf("\n")放在外循环后面,那就是执行打印第一行的个数后接着打印第二行的个数,中间是没有换行这个操作的。就像你打字,本来你是要在下一行开始打的,但是你忘记按了回车,就会接下去打。
页: [1]
查看完整版本: 为什么一定要这样