【问题标题】:How I can write C promgraming block letter separates function? [closed]我如何编写 C 编程大写字母分隔函数? [关闭]
【发布时间】:2023-04-03 17:29:01
【问题描述】:

你能帮我写一个关于 C 编程的程序吗,通过创建一个单独的函数,编写一个用大写字母“#”打印“hello”的 c 程序,我不知道我需要为新函数写什么,谢谢你的帮助

【问题讨论】:

  • 欢迎来到 SO。请不要张贴代码图片。 Instaed 将您的代码直接作为格式化文本插入到您的问题中。您可以使用问题下方的编辑按钮。
  • 你应该写一个单独的函数。您只使用{ } 添加了块,但没有添加功能。
  • 那么我应该添加什么新功能?
  • 你应该写一个函数来打印“HELLO”。一个明显的候选名称是print_hello,内容是完成所有打印工作。
  • 想一想您将如何处理“L”(需要两次),或者如果随后被要求打印,请说“HEEL”。

标签: c function


【解决方案1】:

我能做的最好的事情就是从 1602LCD 世界中汲取灵感。 现在这不是很漂亮,但它完成了工作,我将优化和错误处理留给你。 您可以使用此https://maxpromer.github.io/LCD-Character-Creator/ 生成自定义位图

#include <stdio.h>
#include <stdint.h>

uint8_t bitmap[] = {
  0x1B,
  0x1B,
  0x1B,
  0x1F,
  0x1F,
  0x1B,
  0x1B,
  0x1B
};

void print(uint8_t* p);
void printBits(size_t const size, void const * const ptr);

int main(){
    print(bitmap);
    return 0;
}

void print(uint8_t* p){
    for(int i = 0; i < 8; i++){
        printBits(sizeof(uint8_t), p++);
    }
}

void printBits(size_t const size, void const * const ptr){
    unsigned char *b = (unsigned char*) ptr;
    unsigned char byte;
    int i, j;
    
    for (i = size-1; i >= 0; i--) {
        for (j = 4; j >= 0; j--) {
            byte = (b[i] >> j) & 1;
            if(byte != 0){
                printf("#");
            }
            else{ 
                printf(" ");
            }
        }
    }
    puts("");
}

输出:

## ##
## ##
## ##
#####
#####
## ##
## ##
## ##


...Program finished with exit code 0
Press ENTER to exit console.

【讨论】:

  • 看来OP刚刚学会了什么是函数。因此我认为这个解决方案可能超出了 OP 的经验水平。
  • 我的假设是 OP 可以得到一些灵感来推动 OP 的项目。这只是一种半糟糕的方式。正如我所说,改进这个留给 OP。
【解决方案2】:

您可以像这样创建它:只是为了向您展示,我通过创建一个单独的函数 - ft_print 使用“#”创建了“h”。然后我从 main 调用函数。

#include <stdio.h>

void    ft_print(void)
{
    printf("\n");
    printf("#\n");
    printf("#\n");
    printf("#\n");
    printf("#\n");
    printf("######\n");
    printf("#    #\n");
    printf("#    #\n");
    printf("#    #\n");
    printf("\n");
}

int main(void)
{
    ft_print();

    return (0);
}

【讨论】:

  • 这是一把可爱的椅子 :)
  • OMG,我已经可以了,非常感谢您的帮助
  • 不客气。快乐编码:)
猜你喜欢
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
相关资源
最近更新 更多