L1-005 考试座位号 (15分)
题目详情:
方法一:(数组法)
#include<iostream>
using namespace std;
int main()
{
int n,m,a[1000]={},b[1000]={},c;
string str[1000]={};
cin>>n;
for(int i=0;i<n;i++)
cin>>str[i]>>a[i]>>b[i];
cin>>m;
for(int i=0;i<m;i++)
{
cin>>c;
for(int j=0;j<n;j++)
{
if(a[j]==c)
{
cout<<str[j]<<' '<<b[j]<<endl;
break;//找到就跳出内层循环,稍微提高效率,不加也能AC
}
}
}
return 0;
}
方法二:(结构体法)
#include<iostream>
using namespace std;
struct Student
{
string str;
int a,b;
}stu[1000];
int main()
{
int n,m,a,b,c;
string str;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>str>>a>>b;
stu[a].str=str;//注意此处的处理挺巧妙
stu[a].a=a;
stu[a].b=b;
}
cin>>m;
while(m--)
{
cin>>c;
cout<<stu[c].str<<' '<<stu[c].b<<endl;
}
return 0;
}
方法二将试机座位号作为结构体数组下标非常巧妙,这样很好利于下面的查找,值得仔细体会。
永远相信美好🎈
原文链接:https://blog.csdn.net/qq_40968179/article/details/104261560