首页 > 解决方案 > 用C画三角形和正方形

问题描述

我必须在正方形上绘制一个带有星号的三角形,预期输出如下图所示。

指令是这样的:编写一个 C 程序,从用户那里读取一个数字 n,并允许使用“*”字符打印带屋顶的房子。房子应该是 anxn 正方形,屋顶有两条 45 度的对角线形成一个屋顶(如果 n 是奇数,则屋顶完美地闭合在顶部)。我创建了一个三角形和正方形,但我无法将它们组合起来。三角形

    {
    int i,j,k,x,h=0;
    printf("\n\n");

    for( i = 1; i <= 5; i++)
    {
        for( k = 1; k <=5-i; k++)
        {
            printf(" ");
        }
        printf("*");
        for( j = 2; j <= 2*i-2; j++)
        {
            printf(" ");
        }
        if(i>1) printf("*");
        printf("\n");
    }
    for ( i = 1; i <= 5; i++)
    {
            printf("* ");
    }


    printf("\n\n");
    return 0;
}

在此处输入图像描述

标签: cshapes

解决方案


首先你可能会发现你需要有两种情况:n奇数或n偶数。

然后如果n是奇数,则需要迭代1+(n-1)/2次数,如果n是偶数,则需要迭代n/2以打印^形状。

打印类似 的形状后^,需要用n '*'s 打印一条线。

然后你需要迭代次数,每次n-2打印一行带有 a '*'n-2 ' 's 和另一个。'*'

n '*'最后用s打印一行。

尝试将每个句子转换成一段 c 代码,就完成了。


推荐阅读