编写程序,输入由’*‘组成的菱形的上半部分的行数,输出整个菱形的形状。

编写程序,输入由’*‘组成的菱形的上半部分的行数,输出整个菱形的形状。_第1张图片

import java.util.Scanner;

public class Rhombus {

    public static void main(String[] args) {
        int n ;//定义行数
        int num=1;//定义每行的个数,第一行*数为1,所以初始值为1;
        System.out.print("请输入上半个菱形的行数:");
        Scanner scan=new Scanner(System.in);
        n=scan.nextInt();
        int[] number = new int[n];//定义数组放每行‘*’的个数

//把‘*’个数放入数组
        for(int i=0;i<=n-1;i++){
            
            number[i]=num;
            num=num+2;
            
        }
        //外面有一个大循环嵌套两个小循环
        for(int i=0;i<=number[n-1];i=i+2){
            //先输出该行需要的空格
            for(int j=number[n-1]-1;j>=i;j=j-2){
                System.out.print(" ");
        }

//然后输出该行需要的‘*’
            for(int k=0;k<=i;k++){
                System.out.print("*");
            }
            System.out.println(" ");//换行
    } 

//同上面的想法类似,就是把上面大的三角形倒过来并且把最后一行去掉
        for(int a=0;a<=number[n-1];a=a+2){
            for(int b=0;b<=a+2;b=b+2){
                System.out.print(" ");
            }
            for(int c=number[n-2];c>a;c--){
                System.out.print("*");
        }
            
            System.out.println(" ");
        }
    }
}

这是经过多次试验没有问题的代码,如果有更简单的欢迎在下面留言(*^▽^*)。

或者哪里不懂,没有解释清楚的欢迎提问O(∩_∩)O。

 

 

 

你可能感兴趣的:(java程序设计)