#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//左上三角
void left_up_tri(int num)
{
int i,j;
//实心
for(i = 1;i <= num;i++)
{
for(j = 0;j < i;j++)
{
printf("* ");
}
putchar(10);//换行
}
printf("=======================\n");
//空心
for(i = 1;i <= num;i++)
{
//打印最左边的一个*
printf("* ");
//打印空格
if(i < num)
{
for(j = 0 ;j < i-2;j++)
{
printf(" ");
}
}
//打印最后一排中间的*
if(i == num)
{
int k;
for(k = 0;k < num -2;k++)
{
printf("* ");
}
}
//打印最右边的*
if(i > 1)
printf("* ");
putchar(10);
}
}
//右上角
void right_up_tri(int num)
{
//实心
int i,j,k;
for(i = 1;i <= num;i++)
{
for(j = 0;j <num - i;j++)
{
printf(" ");
}
for(k = 0;k < i;k++)
{
printf("* ");
}
putchar(10);
}
printf("=====================\n");
//空心
for(i = 1;i <= num;i++)
{
//打印图形左边空格
for(j = 0;j <num - i;j++)
{
printf(" ");
}
//打印出了第一行以为的最左边一个*
if(i > 1)
printf("* ");
if(i > 2 && i != num)
{
for(k = 0;k < i-2 ;k++)
printf(" ");
}
if(i == num)
{
for(k = 0;k < num - 2;k++)
{
printf("* ");
}
}
//打印最右边的*
printf("* ");
putchar(10);
}
}
//左下角
void left_down_tri(int num)
{
//实心
int i,j;
for(j = 1;j <= num;j++)
{
for(i = num - j + 1;i > 0;i--)
{
printf("* ");
}
putchar(10);
}
printf("========================\n");
//空心
for(i = 1;i <= num;i++)
{
//打印第一、倒数第二、最后一排
if(i == 1 || i == num-1 || i == num)
{
for(j = 0;j < num - i+1;j++)
{
printf("* ");
}
putchar(10);
}
//打印剩下的
else
{
//打印每排第一个*
printf("* ");
//打印每排的空格
for(j = num - i-1;j > 0;j--)
{
printf(" ");
}
//打印每排最后一个*
printf("* ");
putchar(10);
}
}
}
//右下角
void right_down_tri(int num)
{
int i,j,k;
//实心
for(i = 1;i <= num;i++)
{
for(k = 1;k < i;k++)
{
printf(" ");
}
for(j = 0;j < num - i + 1;j++)
{
printf("* ");
}
putchar(10);
}
printf("==============================\n");
//空心
for(i = 1;i <= num;i++)
{
if(i == 1)
{
for(j = 0;j < num - i + 1;j++)
{
printf("* ");
}
putchar(10);
}
else if(i == num || i == num - 1)
{
for(j = 0;j < i - 1;j++)
{
printf(" ");
}
for(k = 0;k < num - i + 1;k++)
{
printf("* ");
}
putchar(10);
}
else
{
for(j = 0;j < i - 1;j++)
{
printf(" ");
}
printf("* ");
for(k = num - i - 1;k > 0;k--)
{
printf(" ");
}
printf("* ");
putchar(10);
}
}
}
int main(int argc,char** argv)
{
int num;//该变量用于接收键盘输入
int type;//用于判断三角形类型
printf("请输入三角形的阶数:");
scanf("%d",&num);
getchar();
printf("请选择三角形类型(1:左上角 2:右上角 3:左下角 4:右下角):");
scanf("%d",&type);
switch(type)
{
case 1: left_up_tri(num);
break;
case 2: right_up_tri(num);
break;
case 3: left_down_tri(num);
break;
case 4: right_down_tri(num);
break;
}
return 0;
}
利用c语言实现打印实心、空心三角形
于 2023-11-24 15:15:57 首次发布