求用c语言编写此程序,求大神们指教

本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。

输入格式:

输入在一行中给出一个正的奇数n。

输出格式:

输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。

输入样例:

7
输出样例:

  * 
* * * 



* * * 
  *
 void printDiamond(int rows)
{
    for (int i = 1; i <= rows; i++) {
        int flag = (rows + 1) / 2;
        if (i <= flag) {
            for (int k = 0; k < flag - i; k++) {
                printf("  ");
            }
            for (int j = 0; j < i * 2 - 1; j++) {
                printf("* ");
            }
        }
        else {
            for (int k = 0; k < i - flag; k++) {
                printf("  ");
            }
            for (int j = 0; j < (rows - i + 1) * 2 - 1; j++) {
                printf("* ");
            }
        }
        printf("\n");
    }
}