| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 319 人关注过本帖
标题:C语言编程
只看楼主 加入收藏
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:5 
C语言编程
现有21根火柴,两人轮流取,每人每次可取走1- 4根,不可多取,也不能不取,谁取最后一根火柴则谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军”。
搜索更多相关主题的帖子: C语言 编程 
2011-09-11 20:01
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:14 
看错了,原来是取最后一根的输

那先取的就必败了

[ 本帖最后由 czsbc 于 2011-9-11 21:12 编辑 ]
2011-09-11 20:36
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int total=21,p;
    while(total!=1)
    {
        printf("请输入您要取的数目(1-4):");
        scanf("%d",&p);
        if(p<1||p>4)
        {
            printf("输入有误!!");
            system("pause");
            continue;
        }
        total-=p;
        printf("good!\n现在还剩火柴数:%d\n",total);
        system("pause");
        system("cls");
        total-=5-p;
        printf("现在机器取了 %d 根\n还剩火柴数:%d\n请继续\n",5-p,total);
    }
    printf("现在,你只有最后一根了。\nOh!,你输了^-^\n");
    return 1;
}
2011-09-11 21:21
guilin0822
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:21
专家分:20
注 册:2011-7-28
收藏
得分:0 
代码我没写,不过,算法我倒有一个。首先分析可知:能拿到第20根的人,一定是胜者;其次,每次一个人只能拿1到4根,也就是说,每轮都能保证能拿5根(这一点很重要),思想就是,他拿最多,你就拿最少。
由上两点可以得到,后者每次要拿的火柴数是前者数的和为5,就可以了。
2011-10-01 22:08
lijunbo
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2011-10-5
收藏
得分:0 
我才学c++,不太懂,以下是我编的程序。
很垃圾的
我不明白我的程序为什么一旦输入字母,就一直循环下去呢??(输入数字都是好的)
我用的循环语句有错吗??for(b<1||b>4;b<1||b>4;cin>>b)
请高手解答!!!!
(编译环境vs2010)
#include<iostream>
using namespace std;
int main()

{
    for(int a=21;a!=1;a=a-5 ){

int b;
cout<<"请输入您要取得的数目(1-4)"<<endl;
cin>>b;
for(b<1||b>4;b<1||b>4;cin>>b)
{
cout<<"输入错误,请重新输入!!"<<endl;

}
cout<<"很好!!您取了"<<b<<"根火柴!"<<endl<<"现在还剩下"<<a-b<<"根火柴."<<endl<<"计算机取了"<<5-b<<"根火柴!!"<<endl<<"现在还剩下的火柴为"<<a-5<<endl;

    }
    cout<<endl<<endl<<endl<<"啊啊!!!最后一根火柴看来非你莫属了!!"<<endl<<"YOU  LOSE!!!"<<endl;
    }
2011-10-05 21:59
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
收藏
得分:0 
回复 5楼 lijunbo
谢谢!
2011-10-17 10:45
快速回复:C语言编程
数据加载中...
 
   



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

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