一个横向输出logo的例子

2019-07-31  本文已影响0人  mark_x

小甲鱼教程中有一个横向输出字符的练习题,要求输出下面这种效果:


FISH

感觉自己的解法还蛮简洁的,在这里简单地说一下。
基本思路:因为要求横向输出,所以肯定是要

因此定义一个指针数组用来保存一个大字母,打印的时候一行一行的取出。

void F_ch(int i, int n)
{
    char *f_ch[7] = {
        "########",
        "##      ",
        "##      ",
        "######  ",
        "##      ",
        "##      ",
        "##      "
    };

    printf("%s", f_ch[i]);
    while (n-- > 0)
        {printf(" ");}
    
}

main函数用于循环调用上面的子函数,一次打印一行,一行结束后打印一个'\0'.
完整代码如下:

#include <stdio.h>

void F_ch();
void I_ch();
void S_ch();
void H_ch();


void F_ch(int i, int n)
{
    char *f_ch[7] = {
        "########",
        "##      ",
        "##      ",
        "######  ",
        "##      ",
        "##      ",
        "##      "
    };

    
    printf("%s", f_ch[i]);
    while (n-- > 0)
        {printf(" ");}
    
}


void I_ch(int i, int n)
{
    char *i_ch[7] = {
        "####",
        " ## ",
        " ## ",
        " ## ",
        " ## ",
        " ## ",
        "####"
    };
    
    printf("%s", i_ch[i]);
    while (n-- > 0)
        {printf(" ");}
    
}


void S_ch(int i, int n)
{
    char *s_ch[7] = {
        " ###### ",
        "##    ##",
        "##      ",
        " ###### ",
        "      ##",
        "##    ##",
        " ###### "
    };
    
    printf("%s", s_ch[i]);
    while (n-- > 0)
        {printf(" ");}
    
}

void H_ch(int i, int n)
{
    char *h_ch[7] = {
        "##     ##",
        "##     ##",
        "##     ##",
        "#########",
        "##     ##",
        "##     ##",
        "##     ##"
    };
    
    printf("%s", h_ch[i]);
    while (n-- > 0)
        {printf("\n");}
    
}


int main()
{
    int i, n;
    n = 5;
    
    for (i = 0; i < 7; i++)
    {
        F_ch(i, n);
        I_ch(i, n);
        S_ch(i, n);
        H_ch(i, n);
        printf("\n");
    }
    
    return 0;
}

上一篇 下一篇

猜你喜欢

热点阅读