SCAU 菱形打印全集

初级版:
Description
由键盘输入正数n(n<30),要求输出如下2*n+1行的菱形图案。
在这里插入图片描述

#include<stdio.h>
int main()
{
    int i,j,n;
    scanf("%d",&n);
    for(i=1;i<=n+1;i++)
    {
        for(j=1;j<=n+1-i;j++)
            printf(" ");
        for(j=1;j<=2*i-1;j++)
            printf("+");
        printf("\n");
    }
    for(i=n;i>0;i--)

    {
        for(j=n-i;j>=0;j--)
            printf(" ");
        for(j=2*i-2;j>=0;j--)
            printf("+");
        printf("\n");
    }
    return 0;
}

绝对值改进版:

#include "stdio.h"
#define abs(x) ((x)>0?(x):-(x))
main()
{   int n,i,j;
   scanf("%d",&n);
   for(i=-n;i<=n;i++)
   {
        for(j=1;j<=abs(i);j++)  printf(" ");
        for(j=1;j<=2*n+1-2*abs(i);j++)  printf("+");
        printf("\n");
   }
}

数字改进版:
Description
由键盘输入正数n(n<10),要求输出如下中间数字为n的菱形图案。
在这里插入图片描述


#include<stdio.h>
#define abs(x) ((x)>0?(x):-(x))
main()
{   int n,i,j;
    scanf("%d",&n); 
    n--;
    for(i=-n;i<=n;i++)
    {   for(j=0;j<abs(i);j++) printf(" ");
        for(j=-(n-abs(i));j<=n-abs(i);j++) printf("%d",n+1-abs(j)-abs(i));
        printf("\n");
    }
}

空心菱形改进版:
描述
由键盘输入n(n为奇数),打印如下图空心菱形
在这里插入图片描述

#include "stdio.h"
#define abs(x) ((x)>0?(x):-(x))
int main()
{
    int i,j,m,n;
    scanf("%d",&m);
    n=m/2+1;
    for(i=1-n; i<n; i++)
    {
        for(j=0; j<abs(i); j++)
            printf(" ");
        for(j=0; j<2*(n-abs(i))-1; j++)
        {
            if(j==0||j==2*(n-abs(i))-2)
                printf("+");
            else
                printf(" ");
        }
        printf("\n");
    }
    return 0;
}
**空心菱形数字改进版**

#include <stdio.h>
#include <string.h>
#define abs(x) ((x)>0?(x)?-x))

int main()
{
int n,i,j;
scanf("%d",&n);
for(i=-n; i<=n; i++)
{
for(j=1; j<=abs(i); j++)
{
printf(" “);
}
for(j=1; j<=2n-1-2abs(i); j++)
{
if(j1||j2n-1-2abs(i))
printf(”%d",n-abs(i));
else
printf(" “);
}
printf(”\n");
}
}


挖空菱形改进版:
在这里插入图片描述


#include <stdio.h>
#include <math.h>
#define abs(x) ((x)>0?(x):-(x))
int main()
{
    int n,i,j;
    scanf("%d",&n);
    for(i=-(n/2);i<=n/2;i++)
    {
        if(i==-(n/2)||i==(n/2))
        {
            if(i==-(n/2))
            {
                for(j=1;j<=n;j++)
                {
                    printf("*");
                }
                printf("\n");
            }

            else
            {
                for(j=1;j<=n;j++)
                {
                    printf("*");
                }
            }
        }
        else
        {
            for(j=1;j<=abs(i)+1;j++) printf("*");
            for(j=1;j<=(n-2*(abs(i)+1));j++) printf(" ");
            for(j=1;j<=abs(i)+1;j++) printf("*");
            printf("\n");
        }
    }
    return 0;
}

边框菱形改进版:
在这里插入图片描述

#include "stdio.h"
#define abs(x) ((x)>0?(x):-(x))
int main()
{
    int n,i,j;
    scanf("%d",&n);
     for(i=0; i<n; i++)
     {
         if(i==0||i==n-1){
            for(j=0;j<n;j++)
            printf("*");
            printf("\n");}
            else
            {
                printf("*");
                for(j=0;j<abs(n/2-i)-1;j++)
                    printf(" ");
                    if(i!=n/2)
                        printf("*");
                    for(j=0; j<n-2*abs(n/2-i)-2; j++)
                        printf(" ");
                    if(j!=0)
                        printf("*");
                    for(j=0;j<abs(n/2-i)-1;j++)
                        printf(" ");
                    if(i!=n/2)
                        printf("*");
                    printf("\n");
            }
     }


    return 0;
}

吞风吻雨葬落日未曾彷徨
欺山赶海践雪径也未绝望
拈花把酒偏折煞世人情狂
凭这两眼与百臂或千手不能防
天阔阔雪漫漫共谁同航
这沙滚滚水皱皱笑着浪荡
——《难念的经》

猜你喜欢

转载自blog.csdn.net/weixin_43389852/article/details/83692640