开发者社区> 问答> 正文

请大家看看这个程序错在哪。谢谢。

screenshot

#include 
#include 
#include 
void monkey(int, int, int);
int main(void)
{
int n;
scanf("%d", &n);
int i;
for (i = 1; i <= n; i++)
{
int n, m, p;
scanf("%d %d %d", &n, &m, &p);
monkey(n, m, p);
}
return 0;
}
void monkey(int n, int m, int p)
{
int *ar = (int *)malloc((n + 1)*sizeof(int));
memset(ar, 0, n + 1);
int out =n;
int now = p - 1;
while (out-1)
{
int i;
for (i = 1; i <= m; i++)
{
if (now + 1 > n)
now = 1;
else
++now;
if (ar[now])
--i;
if (!(ar[now]) && i == m)
ar[now] = 1;
}
--out;
}
printf("%3d\n", now);
free(ar);
}

展开
收起
a123456678 2016-03-23 11:25:09 1556 0
1 条回答
写回答
取消 提交回答
  • 以前写了个一样的你看看

    #include 
    #define MAX 100
    #define step 3
    #define begin 1
    int main()
    {
    int n,cnt,i=0,j=0;
    int M,N,P;
    int a[MAX];
    scanf("%d%d%d",&M,&N,&P);
    cnt=M;
    while(i for( i=P-1,j=1;cnt>1;i==M-1?i=0:i++)
    {
    if(a[i]!=1) {
    if(j==N){
    a[i]=1;
    j=1;
    // printf("%d out\n",i+1);
    --cnt;
    }
    else
    j++;
    }
    
    }
    for(i=0;a[i];i++);
    printf("%3d",i+1);
    }
    2019-07-17 19:10:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
15分钟打造你自己的小程序 立即下载
小程序 大世界 立即下载
《15分钟打造你自己的小程序》 立即下载