怎样写出这样排列的空格和*

img


怎样不用很多printf直接输出, 写出这样排列的空格和* 就是用循环的那种怎么写

供参考:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n = 7, i, j;
    //scanf("%d", &n);
    n % 2 == 0 ? n-- : n;
    for (i = -n / 2; i <= n / 2; i++)
    {
        for (j = 1; j <= abs(i); j++)
            printf(" ");
        for (j = 1; j <= n - 2 * abs(i); j++)
            printf( "*");
        for (j = 1; j <= abs(i); j++)
            printf(" ");
        if (i != n / 2)  printf("\n");
    }
    return 0;
}

利用双层for循环并高中学过的等差数列进行计算需要输出的空格数和*的数目,如果不知道逻辑思维可以私聊我解决呀!

你一个printf就可以写出来,控制好空格和换行就行。 也可以用循环写出来