请教一下老师这个11行的"0"型菱形的疑问

请教一下老师这个11行的"0"型菱形的疑问

int d = 11;//用来执行倒三角"0"的输出个数

for (int n = 0; n <= 5; n++) {

for (int i = 4; i >= n; i--) {

System.out.print(" ");

}

for (int j = 0; j < 2 * n + 1; j++) {

System.out.print("0");

}

System.out.println();

}

for (int a = 0; a < 5; a++) {

d -= 2;

for (int b = 0; b <= a; b++) {

System.out.print(" ");

            }

for (int c = 0; c < d; c++) {

System.out.print("0");

}

System.out.println();

}

这个程序,我分了2次for循环来完成上下两个三角形从而组成一个菱形..虽然最后达到了菱形的目的,但对于程序以执行有以下几点疑惑:

1,在完成上层的6行三角形后紧接着用第二个for循环来完成下层5行的for循环,我程序里完成5行倒三角形的时候,我int a的初始值还是给的0.但是程序是接着往下执行的.我的问题是:整个程序的执行是一次顺序往下的.所以我编译下层的倒三角的时候,并不需要把行数的初始值定在第7行,两者本身是没有关系的对吧?

2 在完成倒三角行的时候,我外循环a 是控制行数,b是打印空格,c打印"0",."0"是.9.7.5.3.1,因为int a,b初始值我都给了0所以好像找不到合适的公式了,我取巧直接定义了一个变量d赋值为11zhe,然后在外循环行数的时候d-=2;是不是有其他方法,我想不到.囧

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕珊 2017-10-29 11:08:13

关于第一个问题:是这样的,后面和前面的行数没有关系了

关于第二个问题:d还是和行数有关吧,也就是a的值,当a为0时,d为1,a为1时,d为3,所以d是2*a+1

祝学习愉快!

  • 提问者 陆小仙 #1
    倒三角第一行得输入9个符号,,如果是2*a+1 就是1,3,5,7,9就是正三角形了呀??,
    2017-10-29 12:00:19
  • 好帮手慕珊 回复 提问者 陆小仙 #2
    你就让a的值从5开始,判断条件是a>=0;然后a--
    2017-10-30 09:44:52
  • 提问者 陆小仙 回复 好帮手慕珊 #3
    明白了,发现自己有个误区,我总是潜意识的会认为从0开始就是一次递增,反之就是递减其实.a=0和a=5其实都是代表着一行一行往下..谢谢老师
    2017-10-30 11:42:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师