编写程序,提示用户输入一个数并显示该数,使用字符模拟7段显示器的效果:Enter a number:491-9014
分析: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相关推荐
- Java黑皮书课后题第5章:*5.48(处理字符串)编写一个程序,提示用户输入一个字符串,显示奇数位置的字符
5.48(处理字符串)编写一个程序,提示用户输入一个字符串,显示奇数位置的字符 题目 题目概述 运行示例 破题 代码 题目 题目概述 5.48(处理字符串)编写一个程序,提示用户输入一个字符串,显示奇 ...
- Java黑皮书课后题第5章:*5.30(金融应用:复利值)假设你每月在储蓄账户上多存100美元,年利率为5%,那么每月利率是0.05 / 12 = 0.00417。编写程序提示用户输入数据显示定月钱数
5.30(金融应用:复利值)假设你每月在储蓄账户上多存100美元,年利率为5%,那么每月利率是0.05 / 12 = 0.00417.编写程序提示用户输入数据显示定月钱数 题目 题目概述 破题 代码 ...
- Java黑皮书课后题第3章:*3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果
*3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果 题目 题目描述 运行示例 破题 代码 题目 题目描述 ...
- 编写程序,提示用户输入月份和年份,然后显示这个月的天数.
package spurs_ping; import java.util.Scanner; /*编写程序,提示用户输入月份和年份,然后显示这个月的天数. 输入格式: 输入任意符合范围(1月12月)的月 ...
- Java黑皮书课后题第7章:**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取
**7.17(对学生排序)编写一个程序,提示用户输入学生个数.学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名.假定姓名是不包含空格的字符,使用next方法读取 题目 题目描述 破题 代码 ...
- 用java提示用户输入学生个数_编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题。。...
点击查看编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题..具体信息 答: 修改后的程序:#includeint main(){int n,a,b;pri ...
- Java黑皮书课后题第7章:*7.1(指定等级)编写一个程序读入学生成绩,得到最高分best,然后根据下面的规则给出等级值。程序提示用户输入学生总数,然后提示用户输入所有的分数,最后显示等级给出结论
7.1(指定等级)编写一个程序读入学生成绩,得到最高分best,然后根据下面的规则给出等级值 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 *7.1(指定等级)编写一个程序读入学生成 ...
- Java黑皮书课后题第8章:***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵。程序提示用户输入矩阵的行数。然后显示最大的子方阵的第一个元素、行数
***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵.程序提示用户输入矩阵的行数.然后显示最大的子方阵的第一个元素.行数 题目 题目描述与运行示例 破题 代 ...
- Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数
6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...
- Java黑皮书课后题第4章:4.20(字符串处理)编写一个程序,提示用户输入一个字符串,显示它的长度和第一个字符
4.20(字符串处理)编写一个程序,提示用户输入一个字符串,显示它的长度和第一个字符 题目 题目概述 破题 代码 题目 题目概述 4.20(字符串处理)编写一个程序,提示用户输入一个字符串,显示它的长 ...
最新文章
- java sessionmanager_java.lang.IllegalStateException:没有SessionManager
- java string类方法_Java基础学习——String类及其方法
- python化学题_中国大学mooc《化学教学论(朱汝葵 陈思静 汤希雁)》考试期末答案高校邦《Python程序设计基础【实境编程】》课后作业答案...
- 2019百度之星初赛1
- video4linux简介
- C#DotNetBar TabControl将水平标签设置成竖直
- flex实现水平居中和两栏布局
- ubuntu 12.04 samba 服务器搭建
- java menu单击事件_TinyMCE自定义工具栏menuItem单击触发所有父项的单击事件
- 【MCVRP】基于matlab模拟退火算法求解带多种容量的车辆路径规划问题【含Matlab源码 918期】
- 人工势场python_ROS及SLAM进阶教程(十一)多机器人编队人工势场法协同避障算法原理及实现...
- java打印sscil码_2018最新发布 |SSCI收录语言学学科期刊目录
- OSChina 周一乱弹 —— 年迈渔夫遭黑帮袭抢
- 计算机专业哪些竞赛含金量高,盘点国内五大高含金量的编程赛事
- IE8开发者工具 有打开却看不见
- Android权限Uri.parse的详细资料
- MD5加密 生成32位md5码
- Window10 WSL2 Linux子系统文件目录路径
- 玩了下朋友刚买的iphone4s,太鸡冻了,太幸福了
- 无线wifi与802.1x 说明
热门文章
- 延时delay1s程序 c语言,汇编语言软件延时1s的实现方法
- 史上最全的Unreal Engine 4学习资料整理
- undefined和is not defined一样吗?
- UX美即好用效应 Aesthetic Usability Effect
- ERROR: Check hive‘s usability failed, please check the status of your cluster问题解决
- 本地服务启动慢问题及dubbo测试方法记录
- Delphi10.3.3 部署android 开发环境
- 知乎热议:科学网发布文章称「我国数学家证明 NP=P」,会带来怎样的影响?
- pacman 查询_archlinux pacman常用命令
- 23 种设计模式(Java代码演示版)