A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© XiaoBaoMi 中级黑马   /  2015-6-28 15:50  /  1103 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #include <stdio.h>

  2. int main() {
  3.     int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  4.     int low = 0, high = 9;
  5.     printf("输入您要查找的数\n");
  6.     int b = 0;
  7.     //要查找的数的位置
  8.     int place = 0;
  9.     scanf("%d",&b);
  10.     while (high != low) {
  11.    
  12.     int middle = (high + low) / 2;
  13.     if(b > a[middle])
  14.     {
  15.         if (b == a[high]) {
  16.             place = high;
  17.             break;
  18.         }
  19.         low = middle + 1;
  20.     }else if (b < a[middle]){
  21.         if (b == a[low]) {
  22.             place = low;
  23.             break;
  24.         }
  25.         high = middle - 1;
  26.     }else{
  27.         place = middle;
  28.         break;
  29.     }
  30.         
  31.     }
  32.    
  33.     printf("%d\n",place);
  34.     return 0;
  35. }
复制代码

6 个回复

倒序浏览
妙不可言
回复 使用道具 举报
学习了,代码不错,
回复 使用道具 举报
赞哦~                                                         
回复 使用道具 举报
这代码还是很清楚的,嗯嗯
回复 使用道具 举报
沙睿 来自手机 中级黑马 2015-6-29 21:57:35
地板
不错不错!!!
回复 使用道具 举报
赵云18235802528 来自手机 中级黑马 2015-6-30 07:03:13
7#
赞赞赞赞赞赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马