找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1745|回复: 8
打印 上一主题 下一主题
收起左侧

请教这段C语言代码如何做一个循环?

[复制链接]
跳转到指定楼层
楼主
见下图,这段C语言代码要做一百多个if选择,程序每运行一次会进入其中一个if语句,全部写完会有上千行代码,现在我已经写出了两个if选择,用什么样的代码才能省掉这上千行代码,同时又能实现程序功能呢?请大家指教,多谢了!




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2020-10-4 07:50 | 只看该作者
用对分查表法。
回复

使用道具 举报

板凳
ID:606388 发表于 2020-10-4 08:27 | 只看该作者
判断语句不应该是这样吗
回复

使用道具 举报

地板
ID:606388 发表于 2020-10-4 08:31 | 只看该作者
本帖最后由 qingyemurong 于 2020-10-4 08:40 编辑

那个判断语句应该都有问题,   
if(3.146>=temp&&temp>3.137)

目测你应该是使用了数码管显示,可不可以考虑数码管刷新放在定时器里面,定义全局变量保存读取的数值,那样代码就可以减少很多。
使用if嵌套,那样应该是可以少定义一部分变量的,也可以减少代码。
回复

使用道具 举报

5#
ID:525582 发表于 2020-10-4 09:28 | 只看该作者
有一百多个数值,被封装在一个数组里面,用选择语句扫描这一百多个数值,看temp的值对应数组里面哪一个数值,不知道该如何写这个循环的代码
回复

使用道具 举报

6#
ID:525582 发表于 2020-10-4 09:38 | 只看该作者
qingyemurong 发表于 2020-10-4 08:31
那个判断语句应该都有问题,   
if(3.146>=temp&&temp>3.137)

是用的数码管显示,我是新手,定时器没用过,还不会用。我是把一百多个数值放在一个数组里面,temp是ADC采样值,用temp的值和数组里面那一百多个数值做对比,对应上哪一个,就把哪一个显示出来,就是不知道怎样做一个循环,让它自己扫描数组里面的值,我主贴里面截图那种方法是最笨的方法,要复制一百多段,上千行代码
回复

使用道具 举报

7#
ID:606388 发表于 2020-10-4 22:31 | 只看该作者
yytda 发表于 2020-10-4 09:38
是用的数码管显示,我是新手,定时器没用过,还不会用。我是把一百多个数值放在一个数组里面,temp是ADC ...

如果你的目的是把ADC值显示出来,不需要那么多代码吗,也不需要要和数组对比,直接显示不就可以了。
回复

使用道具 举报

8#
ID:525582 发表于 2020-10-5 09:01 来自手机 | 只看该作者
qingyemurong 发表于 2020-10-4 22:31
如果你的目的是把ADC值显示出来,不需要那么多代码吗,也不需要要和数组对比,直接显示不就可以了。

之前做的电压表,确实不需要那么多数值,ADC可以直接显示,不过现在我做的温度计,热敏电阻是非线性的,所以要加这么多数值
回复

使用道具 举报

9#
ID:822598 发表于 2020-10-5 14:25 | 只看该作者
使用定时器可能效果更佳
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表