空心菱形
只有邊的菱形(算法在另外一個簡單的空心菱形的基礎上得到)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i,j,jj,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i==(n/2+1))
printf("*");
else
printf(" ");
}
printf("\n");
for(i=1;i<=n/2;i++)
{
for(j=1;j<=(n/2-i+1);j++)
{
if(j==(n/2-i+1))
printf("*");
else
printf(" ");
}
for(jj=1;jj<=2*i-1;jj++)
printf(" ");
for(j=1;j<=(n/2-i+1);j++)
{
if(j==1)
printf("*");
else
printf(" ");
}
printf("\n");
}
for(i=(n/2-1);i>=1;i--)
{
for(j=1;j<=(n/2-i+1);j++)
{
if(j==(n/2-i+1))
printf("*");
else
printf(" ");
}
for(jj=1;jj<=2*i-1;jj++)
printf(" ");
for(j=1;j<=(n/2-i+1);j++)
{
if(j==1)
printf("*");
else
printf(" ");
}
printf("\n");
}
for(i=1;i<=n;i++)
{
if(i==(n/2+1))
printf("*");
else
printf(" ");
}
printf("\n");
return 0;
}
//數字菱形
#include<stdio.h>
int main()
{
int n,i,j,k;
scanf("%d",&n);
//上半部分
for(i=1;i<=n-1;i++)
{
for(j=n-i;j>=1;j--)
printf(" ");
for(j=1;j<=i;j++)
{
if(j==i)
printf("%d",j-i+1);
else
printf("%d",n-j);
}
for(j=i-1;j>=1;j--)
{
printf("%d",n-j);
}
for(j=n-i;j>=1;j--)
printf(" ");
printf("\n");
}
//中間一行
for(i=1;i<=2*n-1;i++)
printf("1");
printf("\n");
//後半部分
for(i=n-1;i>=1;i--)//前半部分粘過來,只改這一行
{
for(j=n-i;j>=1;j--)
printf(" ");
for(j=1;j<=i;j++)
{
if(j==i)
printf("%d",j-i+1);
else
printf("%d",n-j);
}
for(j=i-1;j>=1;j--)
{
printf("%d",n-j);
}
for(j=n-i;j>=1;j--)
printf(" ");
printf("\n");
}
return 0;
}