分析:7段显示器显示数字,首先了解7段显示器。简单来说是把每个数字分为7段,每段显示或者不显示构成了0~9数字。

问题简化:先能用7段表示数字8(每段都显示),如何表示?回车换行加空格,发现换行后行与行间隔太大不利于展示。参考百度知道看到用字符数组实现展示的。数字分为三行三列,第一行位‘_’,第二行从左到右为'|','_','|',同理第三行为'|','_','|'。这样输出模型做好了。还有一个问题,每段显示与不显示的问题。我们可以给每个字段标记,显示为1,不显示为0.建立另一整型数组记录每个数字的每段的显示与否,每次输入一个数字就进行配对,把配对结果输出到屏幕。

源代码如下:

#include<stdio.h>
#define MAX_DIGIT 10    /*the count of number*/const int segment[10][7]={{1,1,1,1,1,1,0},//0{0,1,1,0,0,0,0},//1{1,1,0,1,1,0,1},//2{1,1,1,1,0,0,1},//3{0,1,1,0,0,1,1},//4{1,0,1,1,0,1,1},//5{1,0,1,1,1,1,1},//6{1,1,1,0,0,0,0},//7{1,1,1,1,1,1,1},//8{1,1,1,1,0,1,1}//9};//printf the digit of 8,three row four column.last column is space.char ch;char display[3][4*MAX_DIGIT]={' '};//empty char use blank space;
int main(){//printf the digit of 8,three row four column.last column is space.char ch;int i,j,cnt=0;void segmentMatch(int num,int byValue);printf("请输入数字:");while(ch=getchar()){if(cnt<10&&ch>='0'&&ch<='9'&&ch!='\n'){segmentMatch(ch-'0',cnt++);//printf the digit}else{break;}}for(i=0; i<3; i++){for(j=0; j<MAX_DIGIT*4; j++){putchar(display[i][j]);}putchar('\n');}}
void segmentMatch(int num,int byValue){int position=byValue*4; //the location is changing//match the arrayif(segment[num][0]){display[0][position+1]='_';
//        printf("%c\n",display[0][1]);}if(segment[num][1]){display[1][position+2]='|';}if(segment[num][2]){display[2][position+2]='|';}if(segment[num][3]){display[2][position+1]='_';}if(segment[num][4]){display[2][position+0]='|';
//        printf("%c\n",display[2][0]);}if(segment[num][5]){display[1][position+0]='|';}if(segment[num][6]){display[1][position+1]='_';}
}
参考百度知道:https://zhidao.baidu.com/question/1431802657412741019.html?fr=iks&word=%C6%DF%B6%CE%CF%D4%CA%BE%C6%F7&ie=gbk

编写程序,提示用户输入一个数并显示该数,使用字符模拟7段显示器的效果:Enter a number:491-9014相关推荐

  1. Java黑皮书课后题第5章:*5.48(处理字符串)编写一个程序,提示用户输入一个字符串,显示奇数位置的字符

    5.48(处理字符串)编写一个程序,提示用户输入一个字符串,显示奇数位置的字符 题目 题目概述 运行示例 破题 代码 题目 题目概述 5.48(处理字符串)编写一个程序,提示用户输入一个字符串,显示奇 ...

  2. Java黑皮书课后题第5章:*5.30(金融应用:复利值)假设你每月在储蓄账户上多存100美元,年利率为5%,那么每月利率是0.05 / 12 = 0.00417。编写程序提示用户输入数据显示定月钱数

    5.30(金融应用:复利值)假设你每月在储蓄账户上多存100美元,年利率为5%,那么每月利率是0.05 / 12 = 0.00417.编写程序提示用户输入数据显示定月钱数 题目 题目概述 破题 代码 ...

  3. Java黑皮书课后题第3章:*3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果

    *3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果 题目 题目描述 运行示例 破题 代码 题目 题目描述 ...

  4. 编写程序,提示用户输入月份和年份,然后显示这个月的天数.

    package spurs_ping; import java.util.Scanner; /*编写程序,提示用户输入月份和年份,然后显示这个月的天数. 输入格式: 输入任意符合范围(1月12月)的月 ...

  5. Java黑皮书课后题第7章:**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取

    **7.17(对学生排序)编写一个程序,提示用户输入学生个数.学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名.假定姓名是不包含空格的字符,使用next方法读取 题目 题目描述 破题 代码 ...

  6. 用java提示用户输入学生个数_编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题。。...

    点击查看编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题..具体信息 答: 修改后的程序:#includeint main(){int n,a,b;pri ...

  7. Java黑皮书课后题第7章:*7.1(指定等级)编写一个程序读入学生成绩,得到最高分best,然后根据下面的规则给出等级值。程序提示用户输入学生总数,然后提示用户输入所有的分数,最后显示等级给出结论

    7.1(指定等级)编写一个程序读入学生成绩,得到最高分best,然后根据下面的规则给出等级值 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 *7.1(指定等级)编写一个程序读入学生成 ...

  8. Java黑皮书课后题第8章:***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵。程序提示用户输入矩阵的行数。然后显示最大的子方阵的第一个元素、行数

    ***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵.程序提示用户输入矩阵的行数.然后显示最大的子方阵的第一个元素.行数 题目 题目描述与运行示例 破题 代 ...

  9. Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数

    6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...

  10. Java黑皮书课后题第4章:4.20(字符串处理)编写一个程序,提示用户输入一个字符串,显示它的长度和第一个字符

    4.20(字符串处理)编写一个程序,提示用户输入一个字符串,显示它的长度和第一个字符 题目 题目概述 破题 代码 题目 题目概述 4.20(字符串处理)编写一个程序,提示用户输入一个字符串,显示它的长 ...

最新文章

  1. java sessionmanager_java.lang.IllegalStateException:没有SessionManager
  2. java string类方法_Java基础学习——String类及其方法
  3. python化学题_中国大学mooc《化学教学论(朱汝葵 陈思静 汤希雁)》考试期末答案高校邦《Python程序设计基础【实境编程】》课后作业答案...
  4. 2019百度之星初赛1
  5. video4linux简介
  6. C#DotNetBar TabControl将水平标签设置成竖直
  7. flex实现水平居中和两栏布局
  8. ubuntu 12.04 samba 服务器搭建
  9. java menu单击事件_TinyMCE自定义工具栏menuItem单击触发所有父项的单击事件
  10. 【MCVRP】基于matlab模拟退火算法求解带多种容量的车辆路径规划问题【含Matlab源码 918期】
  11. 人工势场python_ROS及SLAM进阶教程(十一)多机器人编队人工势场法协同避障算法原理及实现...
  12. java打印sscil码_2018最新发布 |SSCI收录语言学学科期刊目录
  13. OSChina 周一乱弹 —— 年迈渔夫遭黑帮袭抢
  14. 计算机专业哪些竞赛含金量高,盘点国内五大高含金量的编程赛事
  15. IE8开发者工具 有打开却看不见
  16. Android权限Uri.parse的详细资料
  17. MD5加密 生成32位md5码
  18. Window10 WSL2 Linux子系统文件目录路径
  19. 玩了下朋友刚买的iphone4s,太鸡冻了,太幸福了
  20. 无线wifi与802.1x 说明

热门文章

  1. 延时delay1s程序 c语言,汇编语言软件延时1s的实现方法
  2. 史上最全的Unreal Engine 4学习资料整理
  3. undefined和is not defined一样吗?
  4. UX美即好用效应 Aesthetic Usability Effect
  5. ERROR: Check hive‘s usability failed, please check the status of your cluster问题解决
  6. 本地服务启动慢问题及dubbo测试方法记录
  7. Delphi10.3.3 部署android 开发环境
  8. 知乎热议:科学网发布文章称「我国数学家证明 NP=P」,会带来怎样的影响?
  9. pacman 查询_archlinux pacman常用命令
  10. 23 种设计模式(Java代码演示版)