所在位置:主页 > 程序语言 > C语言问题:现有21根火柴,两人轮流取,每人每次可取走1- 4根,不可多取,也不能不取,谁取最后一根火柴则谁输。请编写一个程序进行人机对弈,要求人

C语言问题:现有21根火柴,两人轮流取,每人每次可取走1- 4根,不可多取,也不能不取,谁取最后一根火柴则谁输。请编写一个程序进行人机对弈,要求人

发布时间:2023-12-12 07:24来源:www.sf1369.com作者:宇宇

一、C语言问题:现有21根火柴,两人轮流取,每人每次可取走1- 4根,不可多取,也不能不取,谁取最后一根火柴则谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军”。

//一些简单的输出提示,自己加下。

#includemain() { int s=21,t; int n; printf(Game Begin\n); do { t=4; if(t>s) t=s; printf(How many stick do you wish to take(1~%d)?,t); do { scanf(%d,&n); } while(n<1||n>s); s=s-n; if(t==1) printf(You have taken the last stick.\n); if(s==0) break; printf(%d stick left in the pile.\n,s); printf(Compute take %d stick.\n,5-n); s=s-(5-n); printf(%d stick left in the pile.\n,s); }while(s); printf(You lose!\n); printf(Game Over!\n); }

二、C语言题目:抽火柴游戏-共有21根火柴,计算机模拟第二人,每人每次可以抽1-4根,轮流抽取,如抽到最后一根者为输。。。

#includevoid main() { int a,i,j; int N=21; for(i=1;i<5;i++) { printf(现在我们有%d根火柴,请输入您的选择数:,N); scanf(%d,&a); for(;j>4||j<1;j) { printf(输入错误,请重新输入); scanf(%d,&a); } printf(电脑要%d,5-a); N=N-5; } printf(现在我们只有1根火柴啦,所以您输啦!); } 因为是在网吧做的,所以没有办法测试,希望不会出现什么BUG。

三、给我用c语言讲一下noip火柴棒那道题呗,谢啦~

我记得网上有解题报告,就不写完整的代码了;因为数据范围并不大,所以穷举就可以,定义int cnt()函数返回拼成一个数所需火柴数,然后双重循环: //count计数,n为火柴数 int i,j,count=0; for(i=0;i<=1000;i++) for(j=0;j<=1000;j++) { //加数所需火柴 int a=cnt(i),b=cnt(j); //和所需火柴 int c=cnt(i+j); //和可用火柴 int d=n-4-a-b; //若相等 if(c==d) count++; }

四、设计C语言程序,游戏规则:21根火柴,一次只能拿走1或2或3或4根,不能不拿不能弃权,人与电脑比赛。

你的意思是拿到最后一根的算输吧,

要看顺序的,先拿的就一定输。

——————————————

int match=21;

int finish=0;//结束标志

int err//错误标志

do{

if(match==1)

{

cout<<非常抱歉,你失败了!<>num; if(num!

五、vb编程语言编写一个抽火柴程序

Option Explicit

Dim a%, he%

Private Sub Command1_Click()

a = Val(Text1.Text)

If a = 1 Then

MsgBox 电脑选数为:4 和为5 & 请继续填写, 0, 电脑提示

ElseIf a = 2 Then

MsgBox 电脑选数为:3 和为5 & 请继续填写, 0, 电脑提示

ElseIf a = 3 Then

MsgBox 电脑选数为:2 和为5 & 请继续填写, 0, 电脑提示

ElseIf a = 4 Then

MsgBox 电脑选数为:1 和为5 & 请继续填写, 0, 电脑提示

End If

If Text1.Text = Then

MsgBox 请输入1-4的整数, 0, 电脑提示

End If

End Sub

Private Sub Command2_Click()

If a = 1 Then

MsgBox 电脑选数为:4 和为10 & 请继续填写, 0, 电脑提示

ElseIf a = 2 Then

MsgBox 电脑选数为:3 和为10 & 请继续填写, 0, 电脑提示

ElseIf a = 3 Then

MsgBox 电脑选数为:2 和为10 & 请继续填写, 0, 电脑提示

ElseIf a = 4 Then

MsgBox 电脑选数为:1 和为10 & 请继续填写, 0, 电脑提示

End If

If Text1.Text = Then

MsgBox 请输入1-4的整数, 0, 电脑提示

End If

End Sub

Private Sub Command3_Click()

If a = 1 Then

MsgBox 电脑选数为:4 和为15 & 请继续填写, 0, 电脑提示

ElseIf a = 2 Then

MsgBox 电脑选数为:3 和为15 & 请继续填写, 0, 电脑提示

ElseIf a = 3 Then

MsgBox 电脑选数为:2 和为15 & 请继续填写, 0, 电脑提示

ElseIf a = 4 Then

MsgBox 电脑选数为:1和为15 & 请继续填写, 0, 电脑提示

End If

If Text1.Text = Then

MsgBox 请输入1-4的整数, 0, 电脑提示

End If

End Sub

Private Sub Command4_Click()

If a = 1 Then

MsgBox 电脑选数为:4 和为20 & 你输了哦, 0, 电脑提示

ElseIf a = 2 Then

MsgBox 电脑选数为:3 和为20 & 你输了哦, 0, 电脑提示

ElseIf a = 3 Then

MsgBox 电脑选数为:2 和为20 & 你输了哦, 0, 电脑提示

ElseIf a = 4 Then

MsgBox 电脑选数为:1 和为20 & 你输了哦, 0, 电脑提示

End If

If Text1.Text = Then

MsgBox 请输入1-4的整数, 0, 电脑提示

End If

End Sub

Private Sub Form_Load()

Command1.Caption = 第1轮

Command2.Caption = 第2轮

Command3.Caption = 第3轮

Command4.Caption = 第4轮

Label1.Caption = 请填入1-4的整数:

Text1.Text =

End Sub