爱雨天 2021-11-19 12:29 采纳率: 87.5%
浏览 8
已结题

不知道我这里顺序查找和二分查找出来的是什么东西,而且还不一样的qwq

问题遇到的现象和发生背景

img

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXSIZE 20
#include<iostream>
typedef int element;  // 自定义int类型element
#define list_size 10000

using namespace std;

typedef struct
{
    int key;
}Redtype;

typedef struct SqList
{
    element* elem;
    Redtype r[MAXSIZE + 1];
    int length;
};

int creatnewlist(SqList& L, int n);// 建立顺序表
int initit(SqList& L);

int initit(SqList& L)  //建表初始化
{
    L.elem = (int*)malloc(sizeof(int));
    if (!L.elem) return -1;
    L.length = 0;
    return 0;
}

int creatnewlist(SqList& L, int n)  // 建立顺序表
{
    int i;
    L.elem = (int*)malloc(sizeof(int) * list_size);
    if (!L.elem) return -1;
    else
    {
        for (i = 0; i < n; i++)
        {
            scanf_s("%d", &L.elem[i]);
            L.length++;
        }
    }
    return 0;
}
int Search_Seq(SqList L, int key)
{
    L.r[0].key = key;
    for (int i = L.length; !(L.r[i].key = key); --i)
    {
        return i;
        //printf("%d", i);
    }
}

int Search_Bin(SqList L, int key)
{
    int low = 1;
    int high = L.length;
    while (low <= high)
    {
        int mid = (low + high) / 2;
        if (key = L.r[mid].key) 
            return mid;
        else if (key < L.r[mid].key) 
            high = mid - 1;
        else 
            low = mid + 1;
    }
    return 0;
}

//void ShellSore(SqList& L, int dlat[], int t)
//{
//    for (int k = 0; k < t; k++)
//        printf("%d", dlat[t]);
//}


void show(SqList &L)  //输出顺序表
{
    int i;
    for(i = 0;i<L.length;i++)
    {
        if(i==L.length-1) printf("%d\n", L.elem[i]);
        else printf("%d ", L.elem[i]);
    }
}


int main()
{
    int n;
    int dlat[10];
    printf("请输入数:");
    //int len;
    //scanf_s("%d", &len);
    
    
    
    SqList L;

    initit(L);

    creatnewlist(L, 10);
    Search_Bin(L, 1);
    Search_Seq(L, 1);
    
    printf("结果1");
    int pos = Search_Bin(L, 1);
    printf("%d\n", pos);

    printf("结果2");
    int sa = Search_Seq(L, 1);
    printf("%d", sa);
    
}


问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月27日
    • 创建了问题 11月19日

    悬赏问题

    • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
    • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
    • ¥15 手机接入宽带网线,如何释放宽带全部速度
    • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
    • ¥15 ETLCloud 处理json多层级问题
    • ¥15 matlab中使用gurobi时报错
    • ¥15 这个主板怎么能扩出一两个sata口
    • ¥15 不是,这到底错哪儿了😭
    • ¥15 2020长安杯与连接网探
    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么