编程5-3

编程5-3

public class StarDemo {

    public static void main(String[] args) {

// 输出星号组成的梯形

int m=1,n=4,a=11;

for(;m<6;m++){

   for(int i=1;i<12;i++){

       if(i<n){System.out.println(" ");}

       if else(i<a-n){System.out.println("*");}

       else{System.out.println(" ");}

   }

   

}

System.out.println();

n--;

}

}

    请问老师这个问题出在哪?

正在回答

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

4回答

用双重循环即可,两个内循环。课题有提示的。

public class StarDemo {

    public static void main(String[] args) {

// 输出星号组成的梯形

for(int i=1;i<=5;i++){

    for(int j=5;j>=i;j--){

        System.out.print(" ");

    }

    for(int x=1;x<=(2*i+1);x++){

        System.out.print("*");

    }

    System.out.println();

}

}

}


李珂_ 2017-11-11 15:22:43

    int i=0;

    int j=0;

    int k=0;

    for(i=0; i<5; i++)//控制行数5

    {

        for (j=4-i; j>0; j--)   //空格数量变化:4、3、2、1、0

            System.out.print(" ");        

        for (k=3+i*2; k>0; k--)  //星星变化数量为:3、5、7、9、11

            System.out.print("*");         

        //容易使人困惑的是星星后边的空格这么处理,其实不用理会,没有东西输出就是空白;第一次也是傻傻的输出了空格

    /*

        for (j=4-i; j>0; j--)

        System.out.println(" ");

    */

         System.out.println();

    }


慕工程1163264 2017-10-23 23:57:57

//我们用for循环做换行的情况下,需要在for循环内定义行数

for(int m=1/*m从第一行开始*/;m<=5/*因为我们总共换行5次所以需要小于等于5*/;m++/*每换完一次行m的值需要加上一,以便在下一个循环中继续输入下面要嵌套的内容(空格和星号)*/){

//下面这个for的内容是输出空格所用的for循环语句

for(int i=7/*因为第一行需要输出的星号前面有多个空格所以给n的赋值要大一点保证输出的是梯形*/;i>m/*这个地方的需要让i小于m的原因是第一行我们需要输出的空格为6个,那么要满足梯形的结构第二行我们就需要5个,以此类推*/;i--/*i减小1的原因因为进入第二次循环的时候我们需要的空格比上一洗需要的空格少一个所以要自减一个满足第二行只出现5个空格*/){

System.out.print(" ");/*这个地方用的是print不换行,因为后面还要再继续跟星号*/

}

//下面在空格后面跟上星星

for(int a=1/*因为我们要在每一行写入*号,所以给a赋值1,后面做自增*/;a<=m*2+1/*这个限定条件是跟外循环关联的,因为在输出第一行内容的时候m的值是恒定不变的而每行以后m的值自增一次,我们用2和m相乘所得的值就是偶数,在加上1就是分别在每一行循环的时候是3,5,7,9,11*/;a++/*a需要输出的星星从第一行开始就是3个,所以需要自增运算*/){

System.out.print("*");/*这个地方用的是print不换行,因为后面还要在外循环有一个换行语句*/

}

System.out.println();/*外循环换行*/

}


牛小哥 2017-10-23 23:15:32

你的里面,if  else 改为else if,再把n--放到for循环中,不然只执行一次n--,且对循环没有任何作用。

public class StartDemo {


public static void main(String[] args) {

int m=1,n=4,a=11;

for(;m<6;m++){

   for(int i=1;i<12;i++){

       if(i<n){System.out.print(" ");}

       else if(i<a-n){System.out.print("*");}

       else{System.out.println(" ");}

   }

   n--;

}

System.out.println();


}


}


问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

在线咨询

领取优惠

免费试听

领取大纲

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