一个小的C语言题目,帮忙看看有没有问题

这是我写的代码,下面图片是题目
#include
int pend(int x)
{
int i;
for(i=2;i*i<=x;i++)
{
if(x%i==0)
return 1;
}
return 0;
}
int main()
{
int n,m,a,b,t;
int i,j,k,s=0;
scanf("%d",&t);
while(t--)
{
printf("输入参与的人数n和小明的编号m:\n");
scanf("%d%d",&n,&m);
printf("输入开始的人的编号a和开始的合数b\n");
scanf("%d%d",&a,&b);
for(k=a;k!=m;)
{
if(s%2!=0)//“s”用来纪录素数的个数//
{
k-=1;b+=1;
if(k==0)k=n;
}
else
{
k+=1;b+=1;
if(k==n+1)k=1;
}
if(pend(b)==0)
s++;
}
if(pend(b)==0)
printf("duang\n");
else
printf("%d\n",b);
}
return 0;
}图片图片

复制出了点问题#include没有复制好,不好意思,各位帮忙看看除了它,其他有没有思路上的问题

有没有问题,难道LZ你没有试试调试运行一下,看看能否得到你想要的结果。
如果不能,则说明有问题,再将你具体的问题提出来吧。

还有就是贴代码时,请使用编辑区的 </> 功能,以方便别人看代码。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
bool _isprime(int k)
{
    int i;
    for(i=2;i<=sqrt(k);i++)
    {
        if(k%i==0)
            return false;
    }
    return true;
}
int main()
{
    int i,j,k,T,n,m,a,b;
    cin>>T;
    while(T--)
    {
        int next,flag=0;
        k=0;
        cin>>n>>m>>a>>b;
        next=a%n+1;
        if(m==a)
        {
            cout<<b<<endl;
            continue;
        }
        while(next!=m)
        {
            if(!flag)
            {
                if(_isprime(++b))
                {
                    flag=1; 
                    if(next==1)
                        next=n;
                    else
                        next=next-1;    
                }
                else
                    next=next%n+1;
            }
            else
            {
                if(_isprime(++b))
                {
                    flag=0;
                    next=next%n+1;
                }
                else
                {
                    if(next==1)
                        next=n;
                    else
                        next=next-1;
                }
            }
        }
        if(_isprime(++b))
            cout<<"duang"<<endl;
        else
            cout<<b<<endl;

    }
}

你那个输入输出都不对