| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 435 人关注过本帖, 1 人收藏
标题:请求指出错误···关于猴子选大王
只看楼主 加入收藏
重大C语言
Rank: 2
等 级:论坛游民
帖 子:76
专家分:70
注 册:2012-11-16
结帖率:90%
收藏(1)
已结贴  问题点数:20 回复次数:8 
请求指出错误···关于猴子选大王
#include<stdio.h>
void main()
#define b 100
{  int hz[b]={0};
   int a,p,t,m,n,f;
   printf("输入猴子的数目n及终止值m\n");
   scanf("%d,%d",&n,&m);
   p=0,t=0;
loop:  
   for(a=0;a<n;a++)
   {  if(hz[a]=0)
          p++,f=0;
         else f=1;     
          if(p%m==0&&f==0)
              hz[a]=1,t++;
           if(t=n-1)
                break;
   
   }
   if(t<n-1)
       goto loop;
   for(a=0;a<n;a++)
   {if(hz[a]=0)
      printf("猴王是%d\n",a);
   else printf("淘汰的猴子是%d\n",a);
   }
}
搜索更多相关主题的帖子: 大王 
2012-11-16 23:52
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:3 
介绍下想怎么选?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-17 06:55
重大C语言
Rank: 2
等 级:论坛游民
帖 子:76
专家分:70
注 册:2012-11-16
收藏
得分:0 
回复 2楼 pauljames
  首先猴子对应的是数组hz[a],我让它的任一元素都为0。然后,用 for语句从0号猴子开始数,每当数到m的倍数时,就使该处猴子为1。走完一圈后,用 goto语句回到for语句处再次循环,直到只剩一只猴子。注意猴子数是n,不是b。
  期望你的指正。thank you!
2012-11-17 10:21
重大C语言
Rank: 2
等 级:论坛游民
帖 子:76
专家分:70
注 册:2012-11-16
收藏
得分:0 
回复 2楼 pauljames
请问我如何看其它回帖。
2012-11-17 10:47
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
收藏
得分:10 
错误太多啦
#include<stdio.h>
#include <stdlib.h>
#define b 100
int main()
{
   int hz[b]={0};
   int a,p,t,m,n,f;
   printf("输入猴子的数目n及终止值m\n");
   scanf("%d,%d",&n,&m);
   p=0,t=0;
loop:  
   for(a=1;a<=n;a++)
   {  
      if(hz[a]==0)//等号这样写
       //   p++,f=0;//这是两条语句
       {
            p++;
       }
       else
           continue;     
       if(p%m==0)
       {
           hz[a]=1;
            t++;
       }
   }
   if(t<n-1)
       goto loop;
   for(a=1;a<=n;a++)
   {
      if(hz[a]==0)
         printf("猴王是%d\n",a);
       else
          printf("淘汰的猴子是%d \n",a);
   }
   system("PAUSE");
   return 0;
}



[ 本帖最后由 zxd543 于 2012-11-17 11:12 编辑 ]
收到的鲜花
  • 重大C语言2012-11-17 14:14 送鲜花  2朵   附言:好文章

马马虎虎 不吝赐教 我是路过蹭分滴
2012-11-17 11:02
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:5 
选大王无非就是选剩下的和杀人游戏也就是约瑟夫问题是一样的本质,光从代码讲
要输入n,m 但是数组大小用的是b,
if(hz[a]=0)//?
然后逻辑也有问题
收到的鲜花
  • 重大C语言2012-11-17 14:13 送鲜花  1朵   附言:原创内容
2012-11-17 11:25
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:2 
hh

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-11-17 14:40
wtw199186
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2012-9-22
收藏
得分:0 
#include<stdio.h>
 #include <stdlib.h>
 #define b 100
 int main()
 {
   int hz[b]={0};
    int a,p,t,m,n,f;
    printf("输入猴子的数目n及终止值m\n");
    scanf("%d,%d",&n,&m);
    p=0,t=0;
 loop:  
    for(a=1;a<=n;a++)
    {  
       if(hz[a]==0)//等号这样写
       //   p++,f=0;//这是两条语句
       {
             p++;
        }
        else
           continue;     
        if(p%m==0)
        {
            hz[a]=1;
            t++;
        }
    }
    #include<stdio.h>
 #include <stdlib.h>
 #define b 100
 int main()
 {
   int hz[b]={0};
    int a,p,t,m,n,f;
    printf("输入猴子的数目n及终止值m\n");
    scanf("%d,%d",&n,&m);
    p=0,t=0;
 loop:  
    for(a=0;a<n;a++)
    {  
       if(hz[a]==0)//等号这样写
       //   p++,f=0;//这是两条语句
       {
             p++;
        }
        else
           continue;     
        if(p%m==0)
        {
            hz[a]=1;
            t++;
        }
        if(t==n-1)//我感觉应该有这句
            break;
    }
    if(t<n-1)
        goto loop;
    for(a=0;a<n;a++)
    {
      if(hz[a]==0)
          printf("猴王是%d\n",a);
        else
          printf("淘汰的猴子是%d \n",a);
    }
    system("PAUSE");
    return 0;
 }
 
   
 
2012-11-17 22:46
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:0 
goto 语句最好以后别使用,这个习惯灰常不好~~
2012-11-17 22:59
快速回复:请求指出错误···关于猴子选大王
数据加载中...
 
   



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

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