慕粉4236818
2016-10-22 09:06
你们好厉害的样子,为啥第一行不是三个空格?求详解
你确定仔细看了?
题目确实没有明确说明“必须打印4个空格”
但通过观察图形,图案的最后一行*号左侧有1个空格对吧?
而通过第一行*号与第四行*号对应的位置进行比对可以看出,第一行*左侧有三个空位才能与第四行平齐
因此整个图形,第一行必须打印4个空格
#include <stdio.h> int main() { int i, j, k; for(i=1; i<5; i++) { /* 观察每行的空格数量,补全循环条件 */ for(j=i;j<5;j++) //这里j=i注意 { printf(" "); //输出空格 } /* 观察每行*号的数量,补全循环条件 */ for(k=0;k<2*i-1;k++) { printf("*"); //每行输出的*号 } printf("\n"); //每次循环换行 } return 0; }
子循环需要全部循环完才能跳出子循环
第一行的话:
i赋值给了j,j<5,就一直循环,i=1,so j=i=1,j<5.空格,j++,
j=2,j<5,空格,j++
.......循环打印空格,
一直直到j=5不满足条件为止
至此共打出了4个空格
ps:如果明白了谢谢采纳~
C语言入门
926207 学习 · 20797 问题
相似问题