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("必须输入奇数 "); 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(" "); 57 } 58 59 60 system("pause"); 61 return 0; 62 }