由键盘输入正数n(n<30),要求输出如下2*n+1行的菱形图案。
输出格式
菱形右边不留多余空格
输入样例
2
输出样例
* *** ***** *** *
思路
笨方法,先打印一个正三角形,再打印最长的一条“ * ”,最后打印一个倒三角形
要先计算好行数 i ,每行的第几位 j 和输入数 n 的数学关系
注意此时for循环中 i 和 j 的初始值不能习惯性地设置为 0 ,不然相关的数学关系将对应不上
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
for(j=1; j<=n-i+1; j++)
{
printf(" ");
}
for(j=1; j<=2*i-1; j++)
{
printf("*");
}
printf("\n");
}
for(i=0; i<2*n+1; i++)
{
printf("*");
}
printf("\n");
for(i=1; i<=n; i++)
{
for(j=1; j<=i; j++)
{
printf(" ");
}
for(j=1; j<=2*n-2*i+1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}