结构体与二分
2026-07-04 10:30:24
发布于:四川
3阅读
0回复
0点赞
- :
struct node{//定义一个新类型
string id;//包含的内容id
string name,x;
int age;
}a[100];//此类型的数组
int L=1;
int R=n;
int ans=-1; // 答案初始值表示找不到答案的结果
while(L<=R){
int mid=(L+R)/2; // 找中间
if(a[mid]>x){
}
else if(a[mid]==x){
ans=mid; // 符合要求 记录答案
break; // 调整范围或结束查找
}
else if(a[mid]<x){
}
}
so 上代码!!!
#include<iostream>
#include<algorithm>
using namespace std;
struct N{
string id;
string name,x;
int age;
}a[100];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].id>>a[i].name>>a[i].x>>a[i].age;
}int m;
cin>>m;
while(m--){
string x;
cin>>x;
int l,r,ans;
l=1,r=n,ans=-1;
while(l<=r){
int mid=(l+r)/2;
if(a[mid].id==x){
ans=mid;
r=mid-1;
}else if(a[mid].id<x) l=mid+1;
else r=mid-1;
}
if(ans==-1) cout<<"No Answer!"<<endl;
else cout<<a[ans].id<<" "<<a[ans].name<<" "<<a[ans].x<<" "<<a[ans].age<<endl;
}
return 0;
}
这里空空如也








有帮助,赞一个