| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 832 人关注过本帖
标题:检查不出错误,却无法运行,求大神指导哪里错了
只看楼主 加入收藏
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:4 
回复 楼主 yuxiaoyanyry
二分法排序么? m=solved(int *, int), 你这个solved是 void 类型的,如何返回值?

想抽苏烟了。
2014-09-19 21:15
yuxiaoyanyry
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2014-9-13
收藏
得分:0 
回复 9 楼 uestclicheng
就是二分法查找,给出长度为n的单调不下降数列,和一个K,找出ai>=k的最小的i值?
2014-09-21 18:43
yuxiaoyanyry
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2014-9-13
收藏
得分:0 
回复 11 楼 fl8962
是二分查找
2014-09-21 18:43
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
#include<stdio.h>
#define MAX_N 100
int solved(int a[ ],int n,int k)
    {
    int ub=(n-1),lb=0;
    while(ub>=lb)
    {
        int mid=(lb+ub)/2;
        if(a[mid]==k)        return (mid);
        else if(a[mid]>=k)   ub=mid;
        else                  lb=mid;
    }
    return (-1);
    }
   
   
int main()
{
    int n,k,i,m;
    int a[MAX_N];
    scanf("%d%d",&n,&k);
    for(i=0;i<n;i++)
      scanf("%d",&a[i]);
    m=solved(a,n,k);
    printf("%d\n",m);
    return 0;
}

有两处错了:
k在辅助函数中没有
二是,你的副函数怎么是void,那怎么能调用返回值付给m
2014-09-23 23:25
快速回复:检查不出错误,却无法运行,求大神指导哪里错了
数据加载中...
 
   



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

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