打印菱形
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int line;
printf("请输入总行数:\n");
scanf("%d", &line);
int i, j;
//打印上半部分
for (i = 1;i <= line;i++)//上半部分行数
{
for (j = 1;j <= line - i;j++)
{
printf(" ");
}//打印空格,空格数目等于上半部分总行数减去每行对应的行数
for (j = 1;j <= 2 * i - 1;j++)
{
printf("*");
}//打印*,*数目等于每行对应行数乘以2再减去1
printf("\n");//打印完一行的内容之后换行
}
//打印下半部分
for (i = 1;i <= line - 1;i++)//下半部分的总行数要比上半部分的总行数少一行
{
for (j = 1;j <= i;j++)
{
printf(" ");
}//每行的空格数目等于每行对应的行数
for (j = 1;j <= 2 * ((line - 1) - (i - 1)) - 1;j++)
{
printf("*");
}//每行对应的*数目等于下半部分总行数减去每行对应行数减1的差乘以2再减去1
printf("\n");
}
system("pause");
return 0;
}
心得
这种打印图形的程序,最重要的就是找规律,找到图形的规律之后一切都会变得简单起来,空间想象力以及数学总结能力也很重要!
注意
代码上有具体注释,这里就不一一解释了,小伙伴们请自行理解,如果有其他的好方法的话请大家留言一起探讨!!!