當前位置:係統粉 > 電腦問答 > 其他問答 > 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 係統粉 版權聲明 最新發布內容 網站導航