当前位置:系统粉 > 电脑问答 > 其他问答 > c语言问题

c语言问题

提问者:夏殇落樱coco  |  浏览 次  |  提问时间:2017-03-04  |  回答数量:3

c语言问题(图1)我的程序有什么问题吗,这是一个链表

已有3条答案
蒋小丽di

蒋小丽di

回答数:106  |  被采纳数:69

2017-03-19 08:25:53
意思很简单!
一共21根,人先取,最多只能一次拿4根,只要保证每次人跟机器拿到根数总和为5根即可!!
按照此说法,只要人跟机器互相拿了4轮了以后,就已经全部拿走了4×5=20根
那么第5轮开始的时候只有1根剩余了,就必定是人拿,没得选择了,只有这样才能保证,最后一次
一定是人先拿,而且只有1根给人拿,想不拿都不行,这样机器就一定是赢的!!

按照以上思路 看下以下代码(没TC环境,运行编译不了,请自行更正修改)
#include<stdio.h> void main() { int a=21,i; printf("Game begin:\n"); while(a>0) { do{ printf("How many stick do you wish to take(1~%d)?",a>4?4:a); scanf("%d",&i); }while(i>4||i<1||i>a); /*接收正在确的输入*/ if(a-i>0) printf(" %d stick left in the pile.\n",a-i); if((a-i)<=0) { printf(" You have taken the last stick.\n"); printf(" * * * You lose! \nGame Over.\n"); /*输出取胜标记*/ break; } else printf(" Compute take %d stick.\n",5-i); /*输出计算机取的子数*/ a-=5; printf(" %d stick left in the pile.\n",a); } } 复制代码
赞 10
分开了大盘

分开了大盘

回答数:198  |  被采纳数:9

2017-03-19 07:23:34
强烈感谢~~~
强烈感谢~~~
赞 19
信鑫messi

信鑫messi

回答数:218  |  被采纳数:147

2017-03-19 08:28:00
强烈感谢~~~
强烈感谢~~~
强烈感谢~~~
强烈感谢~~~
赞 21
解决方法
版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航