标题:大家帮忙看下以下的这段代码有什么问题!!!我编译了下 没语法错误 但执行 ...
只看楼主
查明
Rank: 2
等 级:论坛游民
帖 子:31
专家分:24
注 册:2011-4-12
结帖率:100%
已结贴  问题点数:10 回复次数:18 
大家帮忙看下以下的这段代码有什么问题!!!我编译了下 没语法错误 但执行得不到要的结果!!

用折半法查找读入数组中是否有十这个数  无输出代表没找到!!!
#include"stdio.h"

#define N 10

main()
{
  int i, x, low, high, mid;
  int v[N];

  x = 10;
  printf("please input the numbers.\n");
  for(i=0; i<=N; i++)
      scanf("%d", v);
  high = N - 1;
  low = 0;
 
  while(high >= low)
  {
    mid = (high + low) / 2;
    if(x > v[mid])
      low = mid + 1;
    else if(x < v[mid])
      high = mid - 1;
    else
      printf("%d", mid);

  }
  
     
}
搜索更多相关主题的帖子: mid include numbers please 
2011-05-15 15:10
shalyf
Rank: 2
等 级:论坛游民
帖 子:21
专家分:18
注 册:2011-5-12
得分:0 
 for(i=0; i<=N; i++)
       scanf("%d", v);

???输入的放哪个单元
2011-05-15 15:30
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
scanf("%d", v);=》scanf("%d", &v[i]);

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-15 15:32
查明
Rank: 2
等 级:论坛游民
帖 子:31
专家分:24
注 册:2011-4-12
得分:0 
回复 2楼 shalyf
读入的数放在数组v[N]中啊  有什么不对吗
2011-05-15 15:33
查明
Rank: 2
等 级:论坛游民
帖 子:31
专家分:24
注 册:2011-4-12
得分:0 
回复 3楼 ansic
什么意思啊 能说明白点吗
2011-05-15 15:35
查明
Rank: 2
等 级:论坛游民
帖 子:31
专家分:24
注 册:2011-4-12
得分:0 
回复 3楼 ansic
二者应该等价啊 不会有问题吧
2011-05-15 15:36
autumn2779
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2010-6-5
得分:1 
首先你的scanf有问题,数组能那样输入嘛。其次你的循环好像无法终止
2011-05-15 15:44
autumn2779
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2010-6-5
得分:1 
你的printf函数下应该加个break;跳出循环
2011-05-15 15:49
woshiaokeman
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:123
注 册:2011-4-5
得分:1 
for(i=0; i<=N; i++)
scanf("%d", &v[i]);
这里的I<=N有问题吧?!应该是I<N
按你原来这样输入的话0-10是11个数字吧!?应该是小于10,才是10个数字!
2011-05-15 15:52
查明
Rank: 2
等 级:论坛游民
帖 子:31
专家分:24
注 册:2011-4-12
得分:0 
回复 9楼 woshiaokeman
那是我不小心多加了等号  去掉等号也没什么不同啊
2011-05-15 16:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-339956-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.094376 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved