打印菱形星号“*”图案。输入一个正整数n(n为奇数),打印一个高度为n的菱形星号“*”图案。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int n, half, i = 1, j, k, add = 1;
    printf("Input a number:");
    scanf("%d", &n);
    // 算中值 
    if (n % 2 != 1) {
        printf("%d is not odd number!", n);
        return 1;
    }
    half = n/2 + 1;

    while (i>0) {
        for(j=half-i;j>0;j--) {
            printf(" ");
        }
        for (k=1; k<i+1; k++) {
            printf("* ");
        }
        printf("\n");
        if (i == half) { 
            add = -1;
        }
        i+=add;
    }
    return 0;
}

运行结果

Input a number:7
   *
  * *
 * * *
* * * *
 * * *
  * *
   *