遇到乱码
```c++
#include <iostream>
#include <stdlib.h>
#include <time.h>
//二分查找(折半查找)
typedef int ElemType;
typedef struct {
ElemType* elem;
int TableLen;
}SSTable;
void ST_Init(SSTable &ST,int len){
ST.TableLen=len+1;//多申请一个位置,为了存哨兵,不使用哨兵也可以,为了和王道书上保持一致
ST.elem= (ElemType*)malloc(sizeof (ElemType)*ST.TableLen);
int i;
srand(time(NULL));//随机数生成
for(i=1;i<ST.TableLen;i++){
ST.elem[i]=rand()%100;//为了生成的随机数都在0到99之间
}
}
void ST_print(SSTable ST){
int i;
for(i=1;i<ST.TableLen;i++){
printf("%3d",ST.elem[i]);
}
printf("\n");
}
int Search_Seq(SSTable ST,ElemType key){
ST.elem[0]=key;//key作为0号元素 用于存放哨兵
int i;
for(i=ST.TableLen-1;ST.elem[i]!=key;i--);//从后往前找,找到了,i就是当前位置
return i;
}
int main() {
SSTable ST;
ST_Init(ST,10);
ST_print(ST);
ElemType key;
printf("please input search key:\n");
scanf("%d",&key);
int pos= Search_Seq(ST,key);
if (pos)
{
printf("查找成功 位置为%d\n",pos);
} else{
printf("查找失败\n");
}
return 0;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/501587368696180.png "#left")