import java.util.Scanner;
class Demo_lx {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入一个奇数打出由*组成的空心菱形");
int num = sc.nextInt(); //用户输入一个奇数
LingXing l = new LingXing(); //创建一个打印空心菱形的对象
l.cun(num); //调用打印方法
}
}
class LingXing { //打印空心菱形的类
public void cun(int n) { //判断输入的是奇数吗?因为偶数是没办法打印出的
if (n % 2 != 0) { //将需要打印的*存入数组c中
char[][] c = new char[n][n];
for (int i = 0; i < n; i++) {
if (i == n / 2) { //第n/2行的*存入方法
c[i][i - (n / 2)] = '*';
c[i][i + (n / 2)] = '*';
} else if (i < (n / 2)) { //n/2行之前的*存入方法
for (int j = 0; j < n; j++) {
if (j == (n / 2) - i || j == (n / 2) + i) {
c[i][j] = '*';
}
}
} else { //其他行*的存入方法
for (int j = 0; j < n; j++) {
if (j == i - (n / 2) || j == n - i + (n / 2) - 1) {
c[i][j] = '*';
}
}
}
}
for (int i = 0; i < n; i++) { //遍历char 数组c将存储的*打印出来
for (int j = 0; j < n; j++) {
System.out.print(c[i][j]);
}
System.out.println();
}
} else {
System.out.println("请输入奇数");
}
}
}
|
|