1 #define _CRT_SECURE_NO_WARNINGS
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 int main()
6 {
7 // 定义变量
8 int line; // 菱形总行数
9 int column; // 菱形总列数
10 int i; // 当前行
11 int j; // 当前列
12
13 printf("请输入菱形的行数(奇数):");
14 scanf("%d", &line);
15
16 // 判断是否是奇数
17 if (line % 2 == 0)
18 {
19 printf("必须输入奇数\n");
20 exit(1);
21 }
22
23 column = line; // 总行数和总列数相同
24
25 for (i = 1; i <= line; i++) // 遍历所有行
26 {
27 if (i < (line + 1) / 2 + 1) // 上半部分(包括中间行)
28 {
29 for (j = 1; j <= column; j++) // 遍历上半部分所有列
30 {
31 // 第i行最左边的星号 第i行最右边的星号
32 if ((column + 1) / 2 - (i - 1) <= j && j <= (column + 1) / 2 + (i - 1))
33 {
34 printf("*");
35 }
36 else
37 {
38 printf(" ");
39 }
40 }
41 }
42 else
43 {
44 for (j = 1; j <= column; j++) // 遍历下半部分所有列
45 {
46 if ((column + 1) / 2 - (line - i) <= j && j <= (column + 1) / 2 + (line - i))
47 {
48 printf("*");
49 }
50 else
51 {
52 printf(" ");
53 }
54 }
55 }
56 printf("\n");
57 }
58
59
60 system("pause");
61 return 0;
62 }