标题:为什么内存运用错run time erro 很多数据都行但是先一组3,2 在一组5,1会卡 ...
只看楼主
lxyhmc
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-12-2
结帖率:100%
 问题点数:0 回复次数:0 
为什么内存运用错run time erro 很多数据都行但是先一组3,2 在一组5,1会卡主怎么回事
猴子选大王  
Time Limit:1000ms  Memory Limit: 65535K
Submited:72  Accepted:25  
Description
有m个猴子围成一圈,每个有一个编号,编号从1到m。打算从中选出一个大王。经过协商,决定选大王的规则如下:从第一个开始报数,报到n的猴子出圈,紧接着又从1循环报数,最后剩下来的就是大王。
 
Input
第一行是一个正整数T表示测试数据的组数。下面共有T行,每行两个整数m和n,用一个空格隔开,分别表示猴子的个数和报数n。1<=m<=100,1<=n<=200。
 
Output
每组数据对应有一个输出,表示大王的编号。
 
Sample Input
1
3 2
 
Sample Output
3

 
Hint

很多数据都行但是先一组3,2 在一组5,1会卡主怎么回事


#include <stdio.h>
#include <malloc.h>
struct quan{
 int num;
 struct quan * next;
};
void main()
{
 int j,k;
 scanf("%d",&j);
 for(k=1;k<=j;k++)
{
 int n,num,i;
 struct quan **p,**q;
 struct quan quan1;
 *p=&quan1;
 scanf("%d %d",&n,&num);
 for(i=1;i<=n;i++)
 {
  (*p)->num=i;
    if(i==n)
   break;
  (*p)->next=(struct quan *)malloc(sizeof(struct quan));
  *p=(*p)->next;
   }
  (*p)->next=&quan1;
   *q=*p;
   *p=&quan1;
   while((*p)->next!=(*p))
   {
    for(i=1;i<num;i++)
    {
     *q=*p;
     *p=(*p)->next;
     }
     (*q)->next=(*p)->next;
      free(*p);
      *p=(*q)->next;
    }
     printf("%d\n",(*p)->num);
 }
}
   
   
  
  
  
搜索更多相关主题的帖子: 数据 time run erro 内存 
2009-12-02 19:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293714-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.103603 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved