打印2n+1的数字菱形(SCAU期末考试题)
C语言编程,用键盘输入一个正数N,输出2N+1行的空心菱形。输入N=3,得到如下图
如图:
代码如下
#include<stdio.h>
#include<math.h>
int main()
{
int n;scanf("%d",&n);
int i,j,k=0,l,a=1;
for(i=-n;i<=n;i++)
{
for(j=0;j<abs(i);j++)
printf(" ");
if(i<=0)printf("%d",++k);//注意k++和++k的用法
else printf("%d",--k);
for(l=0;l<2*n-2*abs(i)-1;l++)
printf(" ");
if(i!=-n&&i!=n)//删去多出的两个数
{
if(i<=0)printf("%d",++a);//i<=0即图形上半部分
else printf("%d",--a);//即图形下半部分
}
printf("\n");
}
return 0;
}
条条道路通罗马,这只是一种方法。
不喜勿喷!!!!