打印2n+1的数字菱形(SCAU期末考试题)

打印2n+1的数字菱形(SCAU期末考试题)

C语言编程,用键盘输入一个正数N,输出2N+1行的空心菱形。输入N=3,得到如下图

如图:

打印2n+1的数字菱形(SCAU期末考试题)

代码如下

#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;
}

条条道路通罗马,这只是一种方法。

不喜勿喷!!!!

上一篇:算法题:2n皇后问题(Python)


下一篇:【洛谷4425】[HNOI2018&AHOI2018] 转盘(线段树维护单调栈)