c语言 for语句图案的嵌套问题

img

img


img


为什么会一行同时输出多个*再换行 求解惑

因为你内层循环中只有 printf("* "); 内层循环之中不会换行。
printf("\n"); 是在内层循环之外,内层循环结束后才执行一次printf("\n");进行换行。

外层循环 for (i= 1; i < 9; i++) i从1循环到8
内层循环就重复8轮  for (j = 1; j <= i; j++)每轮j从1循环到i
第1轮i=1  j从1循环到1,循环1次,输出1个 "* ",循环结束后换行。
输出* 换行
第2轮i=2  j从1循环到2,循环2次,输出2个 "* ",循环结束后换行。
输出* * 换行
第3轮i=3  j从1循环到3,循环3次,输出3个 "* ",循环结束后换行。
输出* * * 换行
...............
第8轮i=8  j从1循环到8,循环8次,输出8个 "* ",循环结束后换行。
输出* * * * * * * * 换行

你要注意两点,
一是for循环每次是 i < 9;判断条件成立之后是先执行循环体内的代码,执行循环体后再执行 i++ 对循环变量加1
二是内层循环每轮开始时都会执行一次j = 1,让j每轮都从1开始循环。

如有帮助,望采纳!谢谢!

因为你是用for循环在输出号,for循环结束后再输出一个换行符。所以是一样显示多个号,且数量就是外层循环变量的数值