返回

广阔的世界,不一样的美术!

闲谈




PTA 7-1 打印三角形拼图 (15 分)

一个正方形可以用两个等边直角三角形拼出来。给定正方形的边长、两个三角形和对角线所用的符号,请你打印出这两个三角形拼出的正方形。

输入格式:

输入在一行中给出一个正整数 L(2≤L≤100,为正方形的边长),以及两个三角形和对角线所用的符号。

输出格式:

输出正方形。

输入样例:

9 * /

输出样例:

      /      \
     /        \
    *          *
     \        /
      \      /

算法:

  1. 根据给定的正方形边长 L,计算出三角形的边长 a = L / √2。
  2. 根据三角形的边长 a,计算出三角形的斜边长 b = a * √2。
  3. 根据三角形的斜边长 b,计算出对角线长 d = b * √2。
  4. 根据三角形和对角线所用的符号,打印出正方形。

注意:

  1. 在 C 语言中,可以使用 printf 函数来输出字符。
  2. 在 C 语言中,可以使用 sqrt 函数来计算平方根。

代码:

#include <stdio.h>
#include <math.h>

int main()
{
    int L;
    char s1, s2;
    scanf("%d %c %c", &L, &s1, &s2);
    int a = L / sqrt(2);
    int b = a * sqrt(2);
    int d = b * sqrt(2);
    for (int i = 0; i < L; i++)
    {
        if (i == 0 || i == L - 1)
        {
            for (int j = 0; j < L; j++)
            {
                printf("*");
            }
            printf("\n");
        }
        else
        {
            for (int j = 0; j < L; j++)
            {
                if (j == 0 || j == L - 1)
                {
                    printf("*");
                }
                else
                {
                    if (i == L / 2)
                    {
                        printf("%c", s2);
                    }
                    else
                    {
                        printf("%c", s1);
                    }
                }
            }
            printf("\n");
        }
    }
    return 0;
}