要设计这样的菱形图样,可以用for循环控制输出空格还是*符合,当然也可以用字符数组,不过首先需要申请一个足够大的二维数组,这会造成空间的浪费,所以我直接用printf()函数直接输出,通过i和j控制空格和*号的输出。
#include<stdio.h>
int main()
{
int i,j,n;
printf("input n:");
scanf("%d",&n);
if(n%2==0)
n++;
for(i=0;i<n/2;i++)
{
for(j=0;j<n/2-i;j++)
printf(" ");
for(j=0;j<2*i+1;j++)
printf("*");
printf("\n");
}
for(i=(n+1)/2;i<=n;i++)
{
for(j=0;j<i-n/2-1;j++)
printf(" ");
for(j=0;j<=2*(n-i);j++)
printf("*");
printf("\n");
}
return 0;
}
结果如图;
通过一定的规律可以用循环结构配合输出各种有意思的图样。最重要的还是思路和想法。