#include<stdio.h>
int main()
{
int i,j,k;
for(i=0;i<7;i++)/*i為行,先輸出前7行*/
{
for(j=0;j<6-i;j++)/*輸出*前空格*/
{
printf(" ");
}
for(k=6-i;k<i+7;k++)/*輸出每行的*(觀察每行的變化規律)*/
{
printf("*");
}
printf("\n");
}
for(i=7;i<13;i++)/*輸出後6行*/
{
for(j=0;j<i-6;j++)
{
printf(" ");
}
for(k=i-7;k<18-i;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
此法不能動態輸出菱形圖像,只局限與此圖像,進行改進後代碼如下:
#include<stdio.h>
int main()
{
int line,i,j,k;
scanf("%d",&line);
for(i=0;i<line;i++)
{
for(j=0;j<line-i-1;j++)
{
printf(" ");
}
for(k=0;k<2*i+1;k++)
{
printf("*");
}
printf("\n");
}
for(i=line;i<2*line;i++)
{
for(j=0;j<i+1-line;j++)
{
printf(" ");
}
for(k=0;k<2*line-2*(i-(line-1))-1;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}