/*C语言输出菱形
* */
# include <stdio.h>
# include <stdlib.h>
int main() {
int i, j, row, column; //当前行/当前列/总行数/总列数
printf("Input a odd number for row \n");
scanf ("%d",&row);
if (row % 2 == 0){ //判断是否为奇数
printf ("the number must be odd\n");
exit (1);
}
column = row; //菱形的行数和列数是相等的
for (i = 1; i <= row; i++){ //遍历所有行
if (i < (row+1)/2 + 1){ //遍历所有行的上半部分
for (j = 1; j <= column; j++){ //遍历上半部分的所有列
if ((column+1)/2 - (i - 1) <= j && j <= (column+1)/2 + (i - 1)){
printf("\033[32m*\033[0m");
} else {
printf (" ");
}
}
}
else { //下半部分
for (j = 1; j < column;j++){ //遍历下半部分的所有列
if ((column+1)/2 - (row - i) <= j && j <= (column+1)/2 + (row -i)){
printf ("\033[32m*\033[0m");
} else {
printf (" ");
}
}
}
printf("\n");
}//此处才退出行遍历,即遍历上下部分的时候都是在有效行内
return 0;
}