尝试用for循环打印下列的图形

img


#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    int i, j;
    for (i = 1; i <= (n + 1) / 2; i++)
    {
        for (j = 1; j <= (n + 1) / 2 - i; j++)
        {
            printf("  "); //两个空格
        }
        for (j = 1; j <= i * 2 - 1; j++)
        {
            printf("* ");
        }
        printf("\n");
    }
    for (i = 1; i <= n / 2; i++)
    {
        for (j = 1; j <= i; j++)
        {
            printf("  ");
        }
        for (j = 0; j < n - i * 2; j++)// j与i成反比时,考虑-i,即相反数
        { 
            printf("* ");
        }
        printf("\n");
    }

    return 0;
}

C语言 打印菱形_E_Water_的博客-CSDN博客 本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。要点:嵌套循环:外层循环行,内层循环列内层第一个循环打印空格个数,寻找空格个数与行数之间的规律内层第二个循环打印星号与空格,寻找星号个数与行数之间的规律由于前(n+1)/ 2 行与后 n/2 行循环样式不同,故用两个外循环规律思路:个数与 i 成正比,i 为正数;成反比,i 为负数#include< https://blog.csdn.net/E_Water_/article/details/109857663

供参考:

#include<stdio.h>

int main()
{
    int i,j,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j < n-i;j++)
            printf(" ");
        for(j=0;j<2*i+1;j++)
            printf("*");
        printf("\n");
    }
    for(i=n-2;i>=0;i--)
    {
        for(j=0;j < n-i;j++)
            printf(" ");
        for(j=0;j<2*i+1;j++)
            printf("*");
        printf("\n");
    }
    
    return 0;
}