完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用ATmega32编了一个查询程序,但是总是没办法差完整查询,求高手帮忙。
#include #include #include "munber.h" #define uchar unsigned char #define uint unsigned int uchar FreeNumSearch(char * key) { char low = 0x00, high = 0x0C, mid; char cmp; if ((strcmp(FreeNum[0], key) > 0) || (strcmp(FreeNum[12], key) < 0)) return 0; /* 超出表的范围 */ while (low <= high) { mid = (low + high) >> 1; /* mid = (low + high) / 2 */ cmp = strcmp(FreeNum[mid], key); /* 查免费 */ if (cmp == 0) return 1; /* 找到则返回1 */ if (cmp > 0) high = mid - 1; if (cmp < 0) low = mid + 1; } return 0; /* 找不到则返回0 */ } void main() { uchar i; uchar b[6]={"100"}; DDRB=0xFF; PORTB=0xFF; i=FreeNumSearch(b); while(1) { if(i==0) { PORTB=0xFE; } else if(i==1) { PORTB=0xEF; } } } h文件 #ifndef __NUMBER_H #define __NUMBER_H /* 免费电话 */ const char FreeNum[13][6] = { "10000", "10001", "110", "119", "120", "12117", "12121", "122", "12318", "12395", "95119", "95598", "999" }; #endif //__NUMBER_H 我的想法是查询正确点亮第五个灯,错误点亮第一个灯,但是在2维数组达到【8】【5】的前提下,查询第五个数组就直接死机,求帮忙 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
4854 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7527 浏览 0 评论
2845 浏览 2 评论
2981 浏览 1 评论
9772 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-21 16:06 , Processed in 0.611264 second(s), Total 59, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号