美文网首页
一个横向输出logo的例子

一个横向输出logo的例子

作者: mark_x | 来源:发表于2019-07-31 16:38 被阅读0次

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


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

相关文章

网友评论

      本文标题:一个横向输出logo的例子

      本文链接:https://www.haomeiwen.com/subject/zjrtdctx.html