请问这道题用JAVA程序怎样写代码

 

import java.util.Scanner;

public class 菱形 {

	public static void main(String[] args) {
		/*
		打印菱形
		   *
		  ***
		 *****     
		*******
		 *****
		  ***
		   *
		分析
		1.菱形一定是奇数行
		2.每一行的字符数是相等(星号+空格),等于总行数
		3.计算上面一半的星号的出现规律
			第n行星号个数=n*2-1 
			第n行的空格个数=(总行数-(n*2-1) )/2,每行只要打印左边空格
	*/ 
		int line; //菱形的总行数
		int mid;//菱形上半部分的行数
		int star;//每行的星号数
		int space;//每行的空格数 
		int i,j;
		Scanner in = new Scanner(System.in);
		System.out.println("请输入菱形的行数(奇数):");
		line = in.nextInt();
		mid = line/2+1;//上半部分的总行数
		for(i=1;i<=mid;i++){
			star = 2*i-1; //第i行星号个数 
			space = (line-star)/2;//第i行星号左边的空格数 
			//打印空格 
			for(j=1;j<=space;j++){
				System.out.print(" ");
			}
			//打印星号
			for(j=1;j<=star;j++){
				System.out.print("*");
			}  
			//换行
			System.out.println("");
		}
		//打印下半部分 
		for(i=mid-1;i>=1;i--){
			star = 2*i-1; //第i行星号个数 
			space = (line-star)/2;//第i行星号左边的空格数 
			//打印空格 
			for(j=1;j<=space;j++){
				System.out.print(" ");
			}
			//打印星号
			for(j=1;j<=star;j++){
				System.out.print("*");
			}  
			//换行
			System.out.println("");
		}	 
		 
	}
}

 

这种也是两个for循环,不过内循环是两个。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632