如果对其他经典算法感兴趣,可以点击我的主页,有惊喜哟
给大家看看咱的诚意:
先来个流程图(虽然只写了一半,但是下面的一半比猫画虎就行)
废话不多说上代码(欢迎交流哟):
#include<stdio.h>//输出菱形
//思路是这样:在一个循环中先打印空格,再嵌套一个循环打印*
void main()
{
int i=1,j,n;//n代表的是上三角行数,这里i用来控制正在打印的是第几行
scanf("%d",&n);
for(i=1;i<=n;i++)// 打印上三角
{
for(j=1;j<=n-i;j++)
/*把1赋值给j,这个循环用来控制打印空格数,
空格数与上三角行数和正在打印的第几行数有关*/
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
/* 把1赋值给j,这个循环用来控制打印*数,
*数与在打印的是第几行有关*/
{
printf("*");
}
printf("\n");//换行
}
//下面打印的是下三角,总共n-1行
for(i=1;i<=(n-1);i++)//同样用i来控制正在打印的是第几行
{
for(j=1;j<=i;j++)//还是得先打印空格呀,打印空格数与i有关
{
printf(" ");
}
for(j=1;j<=(2*n-2*i-1);j++)/*然后就是打印*啦,
这个的话是与n和*都有关系,需要找出一个关系式 */
{
printf("*");
}
printf("\n");//不要忘了换行哟
}
}