打印菱形图案,可以将菱形分成上下两个部分,
数空格时只需数左侧空格,右侧换行即可。
先看一个较为简单的菱形( 以“ * ”字符,9层菱形为例 ):
#include<stdio.h>
int main()
{
int i,j; // 两个变量i和j
for(i=1;i<=5;i++) // 菱形上半部分
{
for(j=i;j<=4;j++)
printf(" "); // 打印空格
for(j=1;j<=(2*i-1);j++)
printf("*"); // 打印*
printf("\n"); // 整行打印完成,换行
}
for(i=1;i<=4;i++) // 菱形下半部分
{
for(j=1;j<=i;j++)
printf(" "); // 打印空格
for(j=1;j<=(9-2*i);j++)
printf("*"); // 打印*
printf("\n"); // 整行打印完成,换行
}
return 0;
}
运行结果如下:
再来看一个自定义一般菱形:
#include<stdio.h>
int main()
{
char a;
printf("您所期待的菱形由什么样的字符所构成,请输入:\n");
scanf("%c",&a);
int high;
printf("请输入您想要的菱形的层数,请注意是奇数哦!\n");
scanf("%d",&high);
if(high % 2 != 0) //判断输入是否为奇数
{
printf("结果如下:\n");
int i,j;
for(i=1; i<=(high+1)/2; i++) //上部分
{
for(j=i;j<=(high-1)/2;j++)
printf(" ");
for(j=1;j<=(2*i-1);j++)
printf("%c",a);
printf("\n");
}
for(i=1;i<=(high-1)/2;i++) //下部分
{
for(j=1;j<=i;j++)
printf(" ");
for(j=1;j<=(high-2*i);j++)
printf("%c",a);
printf("\n");
}
}
else //输入错误,重新输入
{
printf("输入错误,请注意是奇数哦!\n");
printf("请重新输入:\n");
while(high%2==0)
scanf("%d",&high);
printf("结果如下:\n");
int i,j;
for(i=1; i<=(high+1)/2; i++)
{
for(j=i;j<=(high-1)/2;j++)
printf(" ");
for(j=1;j<=(2*i-1);j++)
printf("%c",a);
printf("\n");
}
for(i=1;i<=(high-1)/2;i++)
{
for(j=1;j<=i;j++)
printf(" ");
for(j=1;j<=(high-2*i);j++)
printf("%c",a);
printf("\n");
}
}
return 0;
}
运行结果如下:
此外,还可以修改菱形颜色和清除屏幕 :
修改颜色:system("color AB");
第一个数字A表示背景色,第二个数字B表示文字颜色,
(若只有一个数字则只设置文字颜色,背景色为默认颜色)
例如:"system("color 2f");"为绿底白字。
清除屏幕:syetem("cls");