怎么编程输出数字菱形

时间:2025-01-25 15:29:29 网络游戏

```java

import java.util.Scanner;

public class DiamondPattern {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入菱形的行数(奇数):");

int n = scanner.nextInt();

if (n <= 0 || n % 2 == 0) {

System.out.println("行数必须是正奇数。");

return;

}

printDiamond(n);

}

public static void printDiamond(int n) {

int maxLineNum = (n + 1) / 2;

// 输出上半部分

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

// 输出空格

for (int j = 1; j <= maxLineNum - i; j++) {

System.out.print(" ");

}

// 输出星号

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

System.out.print("*");

}

System.out.println();

}

// 输出下半部分

for (int i = maxLineNum - 1; i >= 1; i--) {

// 输出空格

for (int j = 1; j <= maxLineNum - i; j++) {

System.out.print(" ");

}

// 输出星号

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

System.out.print("*");

}

System.out.println();

}

}

}

```

代码说明:

输入处理

使用`Scanner`类从控制台读取用户输入的菱形行数`n`。

检查输入的行数是否为正奇数,如果不是,则输出错误信息并退出程序。

输出菱形

计算菱形的最大行数`maxLineNum`,即`(n + 1) / 2`。

使用两个嵌套的`for`循环分别输出菱形的上半部分和下半部分。

在每一行中,先输出一定数量的空格,然后输出星号,最后换行。

上半部分的星号数量从1增加到`2 * maxLineNum - 1`,下半部分的星号数量从`2 * maxLineNum - 1`减少到1。

示例输出:

如果输入行数为5,输出结果如下:

```

*

*

*

*

*

*

*

*

*

```

你可以根据需要修改输入行数,程序将输出相应的数字菱形。