發新話題

《分享》[C++] 猜隨機0~100數值

《分享》[C++] 猜隨機0~100數值

由電腦隨機產生一個介於 0 到 100 (含)的整數,由使用者去猜測。如果使用者輸入的數字太大,則程式印出:

您輸入的數字太大!您已經猜了 2 次。
然後由使用者繼續猜測。同理,數字太小也做類似的處理。
如果猜對了,則顯示:

您猜對了!共猜了 3 次。
提示:
隨機產生數字,可參考以下的程式:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
int r;

srand(time(NULL));
r = rand() % 101; /* 這個 r 就是我們要的介於 0 ~ 100 的隨機整數 */
printf("%d\n", r);
return 0;
}
說明:time() 函式是取得目前時間的函式。srand() 函式是設定「種子」的函式。使用目前時間當作種子,是最為隨機的方法。
如果沒有執行 srand(),您會發現每次執行 rand() 函式的結果都會一樣。此外,若是兩次執行 srand() 的參數一樣(也就是「種子」一樣) ,則兩次執行 rand() 的結果也會一樣。因此以上的程式,如果在同一秒內執行兩次,會得到同樣的結果。
附帶一提,time() 函式所傳回的型別 time_t,其實就是 long int。(至少在我的機器上是這樣)

[拋磚引玉]
成品參考^^"
/*白話註解*/
#include <stdio.h> /*(Standard Input/Output), printf(), scanf()*/
#include <stdlib.h> /*(Standard Library), srnad(), rand()*/
/*格式 void srand(unsigned);
功能 設定亂數種子
格式 int rand(void);
功能 隨機傳回int範圍的數值
*/
#include <time.h> /*time()*/
#include <math.h>

int fwaring(void); /*int宣告 fwaring副程式, 目的印出警告*/

int main(void){
int r, bit = 1; /*bit放在while(參數)*/
int count = 0;
int a;

srand(time(NULL));
r = rand() % 101; /*%:求 rand() / 101的餘數*/

while(bit){ /*while(參數) = 1(true)會重複作, 直到參數是0(false)*/
/*printf("#%d#\n", r); /*我是答案*/
printf("Please import charade(0 ~ 100): ");
scanf("%d", &a);

if(a > 100) /*User輸入值超過一百*/
fwaring(); /*拋出警告*/
else{
count++; /*到這先把count+1*/
if(a == r){ /*User的答案跟謎底一樣的時候*/
if(count == 1){ /*第一次就猜中*/
printf("bingo!!bingo!!bingo!!\n");
}
else{
printf("You guess %dth time(s) get it!\n", count);
}
bit = 0; /*bit是while的參數*/
}
else{ /*a == r不成立,也就是說User猜錯的時候*/
printf("Oh~oh!you guess %dth time(s) wrong lo!\n", count);
}
}
} /*回到while(參數), 判斷參數1/0(true/false)要不要繼續做*/
getchar();getchar();
return 0;
}

int fwaring(void){ /*印出警告訊息*/
fprintf(stderr, "overflow of format.Please press \"Enter\" to play again.");
getchar();getchar();
return 0;
}

TOP

印象中另外一個寫法是
1+((rand)%100)
忘記有沒有錯了 不過寫出來的亂數數列是固定的 用srand就是隨機

TOP

小弟之前太無聊
如果user超出限定範圍5次
就給他來這一句
system("shutdown -s -t 60")  

TOP

引用:
原帖由 homer_snow 於 2011-8-8 23:44 發表 訪客無法瀏覽此圖片或連結,請先 註冊登入會員
小弟之前太無聊
如果user超出限定範圍5次
就給他來這一句
system("shutdown -s -t 60")  
-s 3 差不多 太長的話輸入shutdown -a 立刻破解

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。