C语言实现的LCD数学
来源:互联网 发布:coc野蛮人升级数据 编辑:程序博客网 时间:2024/05/18 03:57
在看编程珠玑,第三章,最后一题,额。。。。。好像用C语言做比较麻烦,因为要涉及到字符串的应用,用C++或Java之类的可能更简单些,但算法一样、
#include <stdio.h> #include <string.h> int size=5,count;//size是改变数字的大小 //flag代表每个数字对应h,v,h,v,h的值. int flag[10][5]={ { 1, 3, 0, 3, 1 }, { 0, 1, 0, 1, 0 }, { 1, 1, 1, 2, 1 }, { 1, 1, 1, 1, 1 }, { 0, 3, 1, 1, 0 }, { 1, 2, 1, 1, 1 }, { 1, 2, 1, 3, 1 }, { 1, 1, 0, 1, 0 }, { 1, 3, 1, 3, 1 }, { 1, 3, 1, 1, 1 } }; /* 对于h(代表水平方向)的状态,有两个值 0:代表空。1:代表有值要画size个'-' 对于v(代表垂直方向)的状态,有四个值 0:代表空。1:代表左边有值,要画size个'|'。2代表只有右边有值,要画size个'|'。 3代表左右两边都有值,所以左右两边都要画size个'|' 对于d,表于结束 */ char lcdStates[6]={'h','v','h','v','h','d'}; char datas[100]; char *line = datas; void addNull(char temp[]) { for(count=0;count<size;count++) { strcat(temp," "); } } char* getH(int h) { char t[20]; strcpy(t," "); if(h==1) { for(count=0;count<size;count++) { strcat(t,"-"); } strcat(t," "); addNull(t); return t; } else if(h==0) { addNull(t); strcat(t," "); addNull(t); return t; } return ""; } char* getV(int v) { char temp[20]; if(v==1){ strcpy(temp," "); addNull(temp); strcat(temp,"|"); addNull(temp); return temp; }else if(v==2){ strcpy(temp,"|"); addNull(temp); strcat(temp," "); addNull(temp); return temp; }else if(v==3){ strcpy(temp,"|"); addNull(temp); strcat(temp,"|"); addNull(temp); return temp; } return " "; } void display() { int i,j,k; memset(datas,'\0',sizeof(datas)); for(i=0;i<6;i++) { if(lcdStates[i]=='h') { line=""; strcpy(datas,line); for(j=0;j<10;j++) { line = getH(flag[j][i]); strcat(datas,line); } printf("%s\n",datas); } else if(lcdStates[i]=='v') { for(k=0;k<size;k++) { line=""; memset(datas,'\0',sizeof(datas)); strcpy(datas,line); for(j=0;j<10;j++) { line = getV(flag[j][i]); strcat(datas,line); } printf("%s\n",datas); } } else { break; } } } int main() { /* int digits[11],i; char str[11]; while(scanf("%s",str)!=EOF) { for(i=0;i<11;i++) if(str[i]!='\0') digits[i]=str[i]-'0'; display(digits); } */ display(); return 0; }
显示效果如下图:
- C语言实现的LCD数学
- LCD 画线方法及C语言实现
- LCD 画线算法及C语言实现
- LCD 画线方法及C语言实现
- LCD 画线方法及C语言实现
- 简单代码实现LCD菜单(C语言的实现方法---加强版 有视频教程)
- 用c语言实现数学多项式的计算
- 一个用C语言实现的数学问题
- C语言实现数学上的组合和排列
- 3D数学库的简单实现(C语言)
- 单片机c语言下lcd多级菜单的一种实现方法
- 单片机c语言下lcd多级菜单的一种实现方法
- 单片机C语言下LCD多级菜单的一种实现方法
- C语言的数学函数
- Linux下C语言实现LCD屏幕截图
- Linux下C语言实现LCD屏幕截图
- Linux下C语言实现LCD屏幕截图
- Linux下C语言实现LCD屏幕截图
- 茵茵的第一课
- function object研究之十四 unwrap
- 字符串逆序输出
- zoj2451-Minimizing maximizer(线段树,超时)
- 基于 OAuth 安全协议的 Java 应用编程
- C语言实现的LCD数学
- 欧拉计划第四题:关于求回文数。第五题,第六题,第七题,第八题,第九题,第十题
- 谁是最好的Coder
- [算法之动态规划] 基本思想
- zoj - 1094 - Matrix Chain Multiplication
- 系统默认声音值
- 字母小游戏
- 正三角形的外接圆面积
- MFC 组合框的使用