/time:2022.3.26. 18:36
1,output->two trapezoids->cut three triangles;2,output->rectangle;3,output->triangle->cut two triangles./
#include<stdio.h>
int main()
{
int k,t,r,x,e,p,q;
char b,c;
char d[]=". . . . . . . . . . . . .";
char a[]=". . . . . . . . . . . . .";
b=32;
c=46;
for(k=3;k>=1;k-=1)
{
a[25]=d[25];//恢复初始的排列
for (t=2*k-2;t>=0;t-=2)
{
a[0+t]=b;
a[24-t]=b;//抠除两边的小直角三角形
if (t=0)
{
a[10]=-3+k;
a[12]=-2+k;
a[14]=-3+k;
for (e=10;e<=14;e+=2)
{
if(a[e]<0) a[e]=c;
else a[e]=b;//抠除中间的小三角形
printf("%s\n",a);
}
}
}
}
//1,output->two trapezoids;
for(r=1;r<=2;r++)
{
printf("%s\n",d);
}
//2,output->rectangle; for(r=1;r<=2;r++)
for(p=0;p<=5;p+=1)
{
a[25]=d[25];//恢复初始的排列
for (q=0;q<=2*p;q+=2)
{
a[0+q]=b;
a[24-q]=b;//抠除两边的大直角三角形
if(q=2*p) printf("%s\n",a);
}
}
//3,output->triangle->cut two triangles.
return 0;
}
可以参考如下程序
#include<stdio.h>
void main() {
for (int i = 0; i < 3; i++) { //第一部分
for (int j = 0; j < (3 - i) * 2 - 1; j++) { //打印空格,倒直角三角
printf(" ");
}
for (int j = 0; j < (i + 1) * 4 + 2; j++) { //打印*,左侧梯形
printf("*");
}
for (int j = 0; j < ((3 - i) * 2 - 1) * 2 - 1; j++) { //打印空格,倒等腰三角形
printf(" ");
}
for (int j = 0; j < (i + 1) * 4 + 2; j++) { //打印*,右侧梯形
printf("*");
}
printf("\n"); // 换行
}
for (int i = 0; i < 3; i++) { //第二部分,打印长方形
for (int j = 0; j < 31; j++) {
printf("*");
}
printf("\n");
}
for (int i = 0; i < 8; i++) { //第三部分,打印倒三角形
for (int j = 0; j < i * 2 + 1; j++) {
printf(" ");
}
for (int j = 0; j < 4 * (8 - i) - 3; j++) {
printf("*");
}
printf("\n");
}
}