小熊蜜蜜茶 2021-10-04 11:33 采纳率: 50%
浏览 75
已结题

用c语言写一个32*32的点阵

用c语言写一个32*32的点阵 要求在点阵中表示出z的形状

  • 写回答

2条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2021-10-04 12:37
    关注

    20多年前的老程序,从UCDOS字库文件hzk16中取点阵

    #include <stdio.h>
    #include <conio.h>
    const unsigned char bit[8]={128,64,32,16,8,4,2,1};
    unsigned char buffer[32];
    unsigned long offset;
    unsigned int q,w;
    int x,y,qw;
    
    void display(char *hz) {
        FILE *hzk;
        qw = *((int *)hz);
        q = (qw&0x00FF)-0xA1;
        w = ((qw>>8)&0x00FF)-0xA1;
        offset = q*0x5E + w;
        offset *= 32;
        if ((hzk = fopen("HZK16","rb"))==NULL) {
            printf("Can not open file HZK16!\n");
            return;
        }
        fseek(hzk,offset,SEEK_SET);
        fread(buffer,1,32,hzk);
        fclose(hzk);
        for (y=0;y<16;y++) {
            for (x=0;x<16;x++) {
                if (buffer[y*2+x/8] & bit[x%8]) {
                    printf("%s","*");
                } else {
                    printf("  ");
                }
            }
            printf("\n");
        }
    }
    int main() {
        display("Z"); 
        getch();
    }
    
    

    hzk16 这个字库文件还能在网上下载到,搜索“ucdos HZK16下载”

    代码中,26行35行中的* 和 Z都是全角字符,并且Z可以换成汉字也显示出来

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月25日
  • 已采纳回答 7月17日
  • 创建了问题 10月4日

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画