回 帖 发 新 帖 刷新版面

主题:这道用折半算法的题目怎么做?紧急!!

/*这一道题不知道怎么做,请各位高手帮忙啊,要快~~~
题:
已知长度为N的整形数组a存放N个学生的成绩,已按由大至小排列,以下算法是用折半查找方法统计成绩大于或等于X分的学生人数,请填空使之完善。*/
#include<iostream.h>
#define N 6
int uprx(int a[N],int x)
{
    int head=1,mid,rear=N;
    do{
        mid=(head+rear)/2;
        if(x<=a[mid])
            _______________
        else
            _______________
    }while(______);
    
    if(a[head]<x)
        return head-1;
    return head;
}

回复列表 (共5个回复)

沙发

哎,又是作业。。

板凳

#include<iostream.h>
#define N 6
int uprx(int a[N],int x)
{
    int head=1,mid,rear=N;
    do{
        mid=(head+rear)/2;
        if(x<=a[mid])
            _____head = mid;__________
        else
            _____rear = mid;________
    }while(__head < rear ____);
    
    if(a[head]<x)
        return head-1;
    return head;

3 楼

楼上的你做的好像不对.

4 楼

我怎么觉得题目有错,应该从head = 0开始才对啊,最后应该返回head+1
空格应填rear = mid ;和 head = mid+1;

5 楼

这道题目确实有问题!!谢谢大家了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册