打印圖形-菱形(只有邊的字符菱形,對稱出現的數字菱形)

空心菱形

只有邊的菱形(算法在另外一個簡單的空心菱形的基礎上得到)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章