給那些初學C語言的朋友,手把手教做一個簡單的人機猜數遊戲
許多那些初學C語言的朋友,學習過程中是不是枯燥無味呢!
今天我們就來教大家用控制台做一個簡單的人機猜數的小遊戲!
第一步:我們來分析一下這個小遊戲的具體思路吧,首先我們是要猜的話肯定是讓計算機來給我們生成一個隨機的數字啦,當然這個數字的範圍使我們自己可以隨便定義的!然後我們根據計算機的提示我們是猜對了幾位數字和猜對的位置有幾個 從而猜到真正的答案!
第二步:我們來分析下具體的演算法:
1.產生一個隨機的四位數,可以產生4個隨機數(a數組存放4個數)拼接成一個完整的四位數
2.從鍵盤輸入進行提示:
1)有幾個數字正確,將輸入的四位數拆分成一個數組b,分別對每位數字實現查找演算法。
2)判斷位置是否正確,挨個比較數組元素是否相等。
3)循環執行鍵盤輸入操作,直到位置操作的數等於4代表猜正確,循環結束,統計其猜的次數。
#include
#include
#include
//在數組a中查找x是否存在,其中a數組的長度為n,如果存在,返回其下標,不存在,返回-1.
int find(int a[],int n,int x)
{
int i;
for(i=0;i
if(x==a[i])
return i; //找到返回下標
return -1;
}
//判斷兩個長度相同的數組有幾個元素是相等的,函數返回相同位置數據相等的個數。
int compare(int a[],int b[],int n)
{
int i;
int count=0;
for(i=0;i
if(a[i]==b[i]) //相同位置的元素相等,則count++
count++;
return count;
}
main()
{
int a[4]; /*計算機隨機產生的四個隨機數,每個隨機數代表完整四位數中的一位,其中a[0]代表千位(不能為0),a[1],a[2],a[3]分別是百位,十位,個位*/
int b[4]={-1};//用來存放用戶猜的四位數,將四位數拆分成4個數,將來用於比較。
int i,guess;
int count1=0,count2=0;
//執行第一步,產生隨機數
srand((unsigned)time(NULL));
a[0]=rand()%9+1; //a[0]的隨機數介於1-9
for(i=0;i
{
a[i]=rand()%10; //百、十、個位隨機數介於0-9
a[i]=rand()%10;
//printf("%d",a[i]); //此處去掉注釋可查看答案哦!
}
while(compare(a,b,4)!=4)//當位置正確的數不等於4,代表沒有猜對,循環輸入數據
{
printf("請輸入你猜的數據:");
scanf("%d",&guess);
//將其拆分成數組元素b
b[0]=guess/1000;
b[1]=guess/100%10;
b[2]=guess/10%10;
b[3]=guess%10;
//給出提示1:有幾個數字猜對了,分別在a數組中查找每個元素b是否存在
count1=0;
for(i=0;i
if(find(a,4,b[i])>=0) //如果返回下標大於0,代表查找到該元素,則統計數量加一
count1++;
count2=compare(a,b,4);
printf("有%d個數字猜對了 有%d個位置猜對了
",count1,count2);
}
printf("恭喜你終於猜到了
");
}


※C加加模擬進程調度時間片輪轉演算法
※C語言你不可以錯過的8個經典題目
※C語言圖形的那些事兒
TAG:C加加 |
※用C語言製作一個最簡單的飛機遊戲!
※我一個朋友說的一個故事,這樣的語言你知道嗎?
※你手持語言這把刀,對孩子做了什麼?
※這樣神秘又簡單的語言,竟然沒有人學!
※做一件浪漫的事,讓機器聽懂人類的語言
※黑猩猩會打手勢交流,跟人類的語言規則是一樣的!
※手把手教你學習R語言
※一個人的斯里蘭卡東部游,這裡沒有外國遊客,我也不懂他們的語言
※機器人和人工智慧能像孩子一樣學習一種語言嗎?
※瑪雅人五大語言,最後一個是現代人的玩笑,其他四個也另有玄機?
※孩子這樣學習英文,不僅輕鬆,還能收穫另一種語言帶給他的快樂
※語言學校真的都是一樣的嗎
※好的演員就是這樣,一個鏡頭,一個眼神,戲全出來了,不需要過多的筆墨和語言
※有種閨蜜叫鍾麗緹的媽媽和婆婆,語言不通靠比劃,逛街還要手牽手
※語言,你要這樣學
※戀愛技巧:從語言這三個細節去判斷一個男人愛不愛你
※男人愛不愛你,看這4個肢體語言,一目了然
※這幾種愛的語言,你有講過幾句?
※兩個南寧的朋友講述的故事,你有語言的能力嗎?
※男人是愛你還是單純的喜歡你,他的身體語言不會說謊