输入一个数打印对应的菱形,如图所示:

首先我们要知道这个输入的数只能是奇数,仔细观察图形,可以发现,这个图形中是由空格和*按照不同个数的输出组成的。菱形我们分成上三角和下三角打印,我们定义一个·变量i分别打印上三角和下三角,i是从0开始的,上三角的行数为line,下三角的行数为line-1。line是总共有多少行。上三角中:先输出空格在输出*,每行空格从上往下数一行少一个,每行中*以2*i+1的方式递增。下三角中:先输出*在输出空格,每行空格从上往下数一行多一个,每行中*按照(line-1-i)*2的方式减少。按照上述方式将上三角和下三角中的空格和*打印出来即可。
#include <stdio.h>
int main()
{
int line=0;//行数
scanf("%d",&line);//输入行数
//打印上三角
for(int i=0;i<line;i++)
{
for(int j=0;j<line-i-1;j++)
{
printf(" ");//打印空格
}
for(int j=0;j<2*i+1;j++)
{
printf("*");//打印*
}
printf("\n");//打印完一行后换行
}
//打印下三角
for(int i=0;i<line-1;i++)
{
for(int j=0;j<i+1;j++)
{
printf(" ");//打印空格
}
for(int j=0;j<(line-i-1)*2;j++)
{
printf("*");//打印*
}
printf("\n");
}
return 0;
}如果大家对某一段代码有问题可以评论或者私信我给大家更为细致的讲解;当然作为一名学生,如果大家有能更为简洁的方法也可以评论出来,让我对代码进行改进,学生是个学习自己生疏地方的一个过程,当然也希望能够提升自己的学识,谢谢您都观看。