天天看點

關于列印圖形

列印閃電:

#include<stdio.h>
int main()
{
    int x,y,n,T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(x=0; x<=2*n; x++)
        {
            for(y=0; y<=n; y++)
            {
                if((x==n-y)||(x==2*n-y)||(x==n))
                {
                    printf("*");
                }
                else if((x<n-y)||((x>n)&&(x<2*n-y)))
                {
                    printf(" ");
                }
            }
            printf("\n");
        }
        printf("\n");
    }
    return 0;
}      

列印菱形:

#include<stdio.h>
int main()
{
    int n,x,y;;
    while(~scanf("%d", &n))
    {
        for(x = 1; x <= 2*n-1; ++x)
        {
            for(y = 1; y <= 2*n-1; ++y)
            {
                printf("%c",(x == -y+n+1 && y <= n) || (x == y+n-1 && y <= n) || (x == y-n+1 && y > n) || (x == -y+3*n-1 && y > n)?'*':' ');
            }
            printf("\n");
        }
    }
    return 0;
}      

列印正六邊行:

#include <stdio.h>
int main() {
    int n;
    scanf("%d",&n);
    int x,y;
    for(x=0;x<=2*n-2;x++){
        for(y=0;y<=3*n-3;y++){
            if(x<(n-1)-y||x>y+n-1||(x>0&&x<2*n-2&&x>(n-1)-y&&x<y+n-1&&x>y-(2*n-2)&&x<-y+4*n-4)){
                printf(" ");
            }
            else if((x==2*n-2&&y>=n-1&&y<=2*n-2)||(x==0&&y<=2*n-2&&y>=n-1)||x==-y+4*n-4||x==y-(2*n-2)||x==(n-1)-y||x==y+n-1){
                printf("*");
            }
        }
        printf("\n");
    }
    return 0;
}      

列印大風車:

#include <stdio.h>
int main()
{
    int n,x,y;
    while(~scanf("%d",&n))
    {
        for(x = 1; x < 2 * n; x++)
        {
            for(y = 1; y < 2 * n; y++)
            {
                printf("%c",((y>=n && y <=2*n && x>=n && x>=y) || (y >=0 && y <=n && x>= 0 && x <=n && x<=y) || (y >= 0 && y <= n && x >= n && x <= 2*n - y) || (y >= n && y <= 2*n && x <= n && x >= 2*n-y))?'*':' ');
            }
            printf("\n");
        }
        printf("\n");
    }
    return 0;
}