你应该用p代表people的脸,你这一段代码:
```
if(x==0)//左
{
if(a[id].p==0) id = ((id - num - 1) % n + 1 + n) % n;
else id = (id + num - 1) % n + 1;
}
if(x==1)
{
if(a[id].p==0) id = (id + num - 1) % n + 1;
else id = ((id - num - 1) % n + 1 + n) % n;
}
```````
应该改为:
```
if(a[id].p==x)//左
{
id-=num;
if(id<=0) id+=n;
}
else
{
id+=num;
if(id>n) id-=n;
}
``````
整体代码:
```
#include<bits/stdc++.h>
using namespace std;
struct people
{
int p;
string job;
} a[100005];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1; i<=n; i++)
{
cin>>a[i].p>>a[i].job;
}
int id=1;
int x,num;
for(int i=1; i<=m; i++)
{
cin>>x>>num;
if(a[id].p==x)//左
{
id-=num;
if(id<=0) id+=n;
}
else
{
id+=num;
if(id>n) id-=n;
}
}
cout<<a[id].job;
return 0;
}```
by liyanchenlycccccc @ 2023-08-26 13:59:24
@[liyanchencxk](/user/791994) 能看懂,但是为什么我这么写就不对啊
by PorkSausage @ 2023-08-27 14:39:24