数字七段显示

问题描述:

我们经常看到的计算器上显示的数字,或电梯中显示的表示楼层的数字,实际上都是由7个发光器件组成的.如下所示.当不同器件被点亮时,可组合出不同的数字.你的任务是,对给定的一个整数,按这种形式把给定整数显示出来,并且数字是可以按比例放大的.

在字符终端上显示这样的数字时,一个最小数字需占5行3列,所谓"数字是可以按比例放大"包含横向放大和纵向放大.其中,横向放大w倍是指显示数字所占3列的中间一列放大w倍,即中间一列变为占w列;而纵向放大h倍是指显示数字所占5行的第2行和第4行放大h倍,即第2行和第4行要占用h行.

参考源代码:

#include <stdio.h>char dt[11][5][3]={
{ {' ','_',' '},{'|',' ','|'},{' ',' ',' '},{'|',' ','|'},{' ','_',' '}},//0
{ {' ',' ',' '},{' ',' ','|'},{' ',' ',' '},{' ',' ','|'},{' ',' ',' '}},//1
{ {' ','_',' '},{' ',' ','|'},{' ','_',' '},{'|',' ',' '},{' ','_',' '}},//2
{ {' ','_',' '},{' ',' ','|'},{' ','_',' '},{' ',' ','|'},{' ','_',' '}},//3
{ {' ',' ',' '},{'|',' ','|'},{' ','_',' '},{' ',' ','|'},{' ',' ',' '}},//4
{ {' ','_',' '},{'|',' ',' '},{' ','_',' '},{' ',' ','|'},{' ','_',' '}},//5
{ {' ','_',' '},{'|',' ',' '},{' ','_',' '},{'|',' ','|'},{' ','_',' '}},//6
{ {' ','_',' '},{' ',' ','|'},{' ',' ',' '},{' ',' ','|'},{' ',' ',' '}},//7
{ {' ','_',' '},{'|',' ','|'},{' ','_',' '},{'|',' ','|'},{' ','_',' '}},//8
{ {' ','_',' '},{'|',' ','|'},{' ','_',' '},{' ',' ','|'},{' ','_',' '}} //9
};int main(){int i,j,w,h,k,n,p,m =0,a[10];while(1){scanf("%d%d%ld",&w,&h,&n);if(w ==0) break; while(n){a[m++] = n%10;n/=10;}for( i =0;i<5;i++){for(p =0;p<h;p++){ for (k = m-1;k>=0;k--){printf("%c",dt[a[k]][i][0]);for(j =0; j<w;j++)printf("%c",dt[a[k]][i][1]);printf("%c",dt[a[k]][i][2]);printf(" ");}printf("\n");if(i !=1&&i!=3) break;}}}return 0;
}

测试结果

如下所示:

发扑克牌

问题描述:

在计算机上玩发扑克牌是一种常见的游戏,现在按玩升级的规则,模拟4个玩家发牌,打印出每个玩家的12张牌和6张底牌.

参考源代码:

#include <stdio.h>
#include<stdlib.h>#include <time.h>int main(){int x,y,a[55],i,j,z,fg;char d[] ={"xA234567891JQK"};srand((unsigned int) time (NULL));for(i =0; i<54; i++){while(1){x= rand()%4+1;y = rand()%14;z =x*100+y;if(z==300||z==400) continue;fg =0;for(j =0; j<i ; j++)if(z==a[j]){fg =1;break;}if(fg==0) break;}a[i] =z;}printf("\n%8c%8c%8c%8c",'E','S','W','N');for(i =0; i<54; i++){if(i%4 ==0) printf("\n");if(i ==48) printf("\n________\n");if(a[i] ==100||a[1] ==200)printf("%8c",a[i]/100);else if(a[i]%100 ==10)printf("%6c10",a[i]/100+2);else printf("%7c%c",a[i]/100+2,d[a[i]%100]);  }printf("\n");return 0;
}

测试结果

如下所示:

关于程序设计基石与实践更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.

程序设计基石与实践之实现数字七段显示与发扑克牌问题相关推荐

  1. 程序设计基石与实践系列之编写高效的C程序与C代码优化

    原文出处: codeproject:Writing Efficient C and C Code Optimization 虽然对于优化C代码有很多有效的指导方针,但是对于彻底地了解编译器和你工作的机 ...

  2. 程序设计基石与实践系列之类型提升、内存分配,数组转指针、打桩和矢量变换

    英文出处:Peter Fačka: Guide to Advanced Programming in C C语言可用于系统编程.嵌入式系统中,同时也是其他应用程序可能的实现工具之一. 当你对计算机编程 ...

  3. 程序设计基石与实践之C语言指针和数组基础

    英文出处:Dennis Kubes:  <Basics of Pointers and Arrays in C>. 关于C语言中指针和数组的争论就像是一场恶战.一方面,有些人觉得,所有人都 ...

  4. 程序设计基石与实践系列之失落的C语言结构体封装艺术

    英文来源于 Eric S. Raymond-- The Lost Art of C Structure Packing 谁该阅读这篇文章 本文是关于削减C语言程序内存占用空间的一项技术--为了减小内存 ...

  5. 山东大学计算机科学与技术学院程序设计思维与实践作业 week10-树型数据结构及其应用

    山东大学计算机科学与技术学院程序设计思维与实践作业 山大程序设计思维与实践作业 sdu程序设计思维与实践 山东大学程序设计思维实践作业H10 山大程序设计思维实践作业H10 山东大学程序设计思维与实践 ...

  6. 《Java程序设计》课堂实践内容总结

    <Java程序设计>课堂实践内容总结 实践一 要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 提交在IDEA或命令行中运行结查截图,加上学号水印,没学号的 ...

  7. 程序设计思维与实践 Week9 作业三道

    A - 咕咕东的目录管理器 题面 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标,从 ...

  8. 山东大学计算机科学与技术学院程序设计思维与实践作业 week5-数学基础与线性结构

    山东大学计算机科学与技术学院程序设计思维与实践作业 山大程序设计思维与实践作业 sdu程序设计思维与实践 山东大学程序设计思维实践作业H5 山大程序设计思维实践作业H5 山东大学程序设计思维与实践 w ...

  9. c语言实战项目ppt,c语言程序设计与项目实践第5章.ppt

    <c语言程序设计与项目实践第5章.ppt>由会员分享,可在线阅读,更多相关<c语言程序设计与项目实践第5章.ppt(28页珍藏版)>请在装配图网上搜索. 1.第5章 分支结构程 ...

最新文章

  1. 《预训练周刊》第21期:FlipDA:有效且稳健的数据增强小样本学习、开放域低资源适应的生成式聊天机器人...
  2. php文件下载教学,php下载文件的代码示例
  3. WH-G405tf连接公网服务器进行透传
  4. java tif格式图片_java给tif格式图片加文字水印?
  5. 【Java】日期/事件字符串包含TZ
  6. C++实现拓扑排序(vector模拟邻接表存储,栈实现)
  7. AMQP 和 RabbitMQ 入门
  8. 金融期货具体的开户条件
  9. Pm2 部署 Nuxt 项目
  10. c语言ip判断程序,IP判断 (C语言代码)
  11. 迷你世界服务器为什么在维护,迷你世界为什么进不去迷你世界进不去怎么办
  12. audio播放器进度条
  13. WinServer服务器IP访问白名单设置
  14. Elasticsearch个人学习笔记
  15. 关于示波器探头的输入容抗问题解决
  16. 安装win7x64、x86总提示文件出错或安装大型软件出错或0x0000001a、0x0000003b蓝屏
  17. 解决win11不能拖拽图片进ppt/ps的问题
  18. 小知识:软件开发的权限控制和权限验证
  19. 前端笔记-201808
  20. 线性插值 np.interp()

热门文章

  1. 计算机清理垃圾文件丢失怎么恢复,电脑文件数据删除怎么恢复-互盾数据恢复软件...
  2. 《笑话大全》APP代码详解1
  3. BUUCTF Reverse/Ultimate Minesweeper
  4. 分布式存储的架构以及存在的问题和解决办法1
  5. 2021年危险化学品经营单位主要负责人考试题库及危险化学品经营单位主要负责人考试试卷
  6. 动态规划编辑距离_使用动态规划方法解决编辑距离问题
  7. 【拔刀吧 TensorFlow】TensorFlow学习笔记五
  8. 使用循环打印三角型以及九九乘法表
  9. 如何设计一个锂电池充电电路(TP4056)
  10. 了解网络工程的基础知识与工程收尾