171114 程式學習 猜數遊戲。

2021-08-10 19:19:24 字數 1067 閱讀 6654

這題自己折騰很久了。沒搞出來。看了參考的程式,當時學習了,存點自己的考慮。

原題:

猜數遊戲。玩家想好了乙個 1~1000 之內的整數,由計算機來猜這個數。如果計算機猜出的數比 玩家想的數大,則玩家輸入1;如果計算機猜出的數比玩家想的數小,則玩家輸入-1;這個過程一直進行到 計算機猜中為止,玩家輸入0。

一針見血的問題:

怎麼實現多次輸入數值加回車?你之前寫的程式可是只能玩一次就掛掉了。。!

答:

while(1)

由此便可實現,while語句的迴圈條件永遠成立,可多次讀取新的輸入數值,並完成計算。

而「break」則承擔著跳出迴圈,終結程式的作用。(詳見轉向語句。另有continue可從此次迴圈中跳出,進行下一次迴圈。)

另外,猜數的主要演算法如何實現?

而且,顯然這個程式需要糾錯機制:

保證輸入值合乎範圍(0,1,-1)

保證所猜的值在合理範圍【1,1000】

防止出現賴皮操作。(猜500嫌大,猜499嫌小。或者命名猜中卻刻意繼續)

#include

using

namespace

std;

int guess(int k=0);

int main()

cout

<<"是 "

<" 嗎?\t";

t++; }}

//演算法的主要思想是,利用二分法,其中,left和right給出了猜數的區間端點,每次猜數即去區間中值,而在每次反饋之後,按反饋結果將上次所猜的數值g賦給left或right,得到新的區間。重複進行。很好的用cpp描述了這個方法的過程,佩服佩服。

int guess(int k)

//switch語句只負責了判斷輸入值並賦值的準備工作,沒有直接輸出.很智慧型。

//如果不這樣的話,在完成賦值之後,最起碼賴皮操作就沒法判斷。。因為你還要輸出,讀都費勁,寫更容易出錯!

if(right<=left)

g=(left+right)/2;

return g;

}

1995猜數遊戲

猜數遊戲 time limit 1 seconds memory limit 32768 k total submit 70 accepted 11 description 我們經常看到這樣的遊戲,機器隨機產生乙個4個不同的數字,然後你輸入4個不同數字,然後機器自動判斷你輸入的4個數字有多少個數字猜...

簡單猜數遊戲

2.計算機隨機生成乙個1024之內的整數,請你猜這個數,如果猜錯了,計算機會提示你大了還是小了,你一共只有十次機會,如果十次沒猜到 則提示 失敗 如果十次之內猜對則提示 你真聰明 c using system using system.collections.generic using system...

猜數遊戲 plus

猜數遊戲大家應該都不陌生,隨機產生乙個數,然後讓玩家去猜這個數的大小,但是傳統的猜數遊戲只是單純的猜數,沒有時間或者次數的限制,導致遊戲的豐富度不高 所以在傳統猜數遊戲的基礎上可以進行功能的增添,給予玩家更好的遊戲體驗 我們可以利用gettickcount 函式進行時間上的把控,可以在時間上進行限制...