當前位置:首頁 » 編程語言 » 猜數游戲c語言

猜數游戲c語言

發布時間: 2023-03-24 05:59:26

c語言設計一個簡單的猜數游戲:先由計算機「想」一個數請用戶猜,如果用戶猜對了,則計算機給出提示信息

//希望我的回答對你的學習有幫助
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain()
{
intx,magic,a=0,c=1;
charb;
do
{
srand(unsigned(time(NULL))); //為函數rand()設置隨機數種子
magic=rand()%100+1; //magic為1~100間的一個數
printf("您每次游戲中,只有十次機會 ");
while(a<=10)
{
scanf("%d",&x);
if(x>magic)
printf("Wrong,比magic大 ");
elseif(x<magic)
printf("Wrong,比magic小 ");
//elseif(x=magic) //這里的邏輯運算應該使用「==」
elseif(x==magic) //你應該是寫錯了
{
printf("Right ");
a=a+1;
printf("你猜了%d次了 ",a);
a=0; //猜對之後,應該對猜測的次數初始化
break;
}
a++;
printf("你猜了%d次了 ",a);
if(a==10)
{
a=0;
printf("Doyouwanttocontinue?(回答Y/N或者y/n) ");
//scanf_s("%c",&b); //這么使用,會將你在輸入字元之前的
//空行(enter鍵)賦值給b,而不是你輸入的Y/N/y/n
scanf("%c",&b); //而這種寫法,%c前面的空格會使scanf忽略前面的enter鍵
//等待第一個非enter鍵元素讀入
if(b=='y'||b=='Y')
c=1;
elseif(b=='n'||b=='N')
c=0;
break; //當猜測次數為10時,應當跳出
//這里不會自動跳出,因為a被初始化為0
}
}
}while(c==1);

return0;
}

scanf 裡面沒有空格的情況,程序會自動執行 10 次

❷ C語言:猜數問題!!

部分測試

❸ C語言編程 猜數游戲

#include
#include
//用到了rand函數,所以要有這個頭文件
#include
//用到了time函數,所以要有這個頭文件
int
main()
{
int
number;
//number用於存儲隨機數
int
guess=0;
//guess用於存儲玩家猜的數
srand((unsigned)
time(null));//用系統時間作為rand函數使用的種子
number=rand()%100;
//隨機除以100,取余數
number++;
//余數加1
printf("猜數字游戲\n");
printf("該數字在1到100之間\n");
while(guess!=number)
{
printf("請輸入您所猜的數:");
scanf("%d",&guess);
//如果玩家猜的數較小,給予提示
if
(guess
number)
{
printf("大了\n");
}
}
//猜中則循環結束,輸出猜中的數字
printf("猜對了,這個數字就是:%d\n",number);
return
0;
}

❹ c語言,編寫一個猜數字游戲

源碼如下:

/*File:guess.c*/

#include<stdio.h>/*standardinput&outputsupport*/

#include<stdlib.h>/*srand()rand()*/

#include<time.h>/*time()*/

/*宏定義*/

#defineNUMBER_LENGTH5/*隨機數長度*/

#defineNUMBER_LIMIT10/*隨機數限制,每一位0-9*/

#defineINPUT_LENTH128/*輸入緩沖區大小*/

chargoal[NUMBER_LENGTH]={0};/*保存隨機數*/

charflag[NUMBER_LIMIT]={0};/*保存隨機數標志,保證不重復*/

charinput[INPUT_LENTH]={0};/*保存輸入*/

/*初始化用於保存數據的數組*/

voidinitData()

{

inti=0;

while(i<NUMBER_LENGTH)

goal[i++]=0;

i=0;

while(i<NUMBER_LIMIT)

{

flag[i++]=0;

}

}

/*初始化用於保存緩沖區的數組*/

voidinitBuffer()

{

inti=0;

while(i<INPUT_LENTH)

input[i++]=0;

}

/*顯示猜測結果*/

voiddisplay()

{

intcount=0;

inti=0;

while(i<NUMBER_LENGTH)

{

if(input[i]==goal[i])

{

printf("%c",'o');

count++;

}

else

{

printf("%c",'x');

}

i++;

}

printf(" RIGHT:%dbit(s) ",count);

if(count==NUMBER_LENGTH)

{

printf("Youwin!Thenumberis%s. ",goal);

exit(0);

}

}

/*生成隨機數*/

voidgeneral()

{

/*以時間作為時間種子保證生成的隨機數真正具有隨機性質*/

srand((unsignedint)time(NULL));

inti=0;

while(i<NUMBER_LENGTH)

{

chartmp;

do

{

tmp='0'+((i!=0)?(rand()%10):(1+rand()%9));

}while(flag[tmp]!=0);

flag[tmp]=1;

goal[i++]=tmp;

}

}

/*輸入方法,用於猜測*/

voidguess()

{

printf(": ");

scanf("%s",input);

display();

initBuffer();

}

/*主函數,程序主框架*/

intmain(intargc,constchar*argv[])

{

initData();

initBuffer();

general();

while(1)guess();

return0;

}

==============================================

運行結果見附圖,希望我的回答能夠對你有所幫助。

❺ 猜數游戲c語言

#include<stdio.h>
#include<stdlib.h> //隨機數生成函數srand()與rand() 所需的頭文件
#include<time.h> //time()所需的頭文件
int main()
{
int sysdata;//系統生成的數據
int n; //所猜的數據
int sum = 0;//記錄猜的次數
srand((unsigned)time(NULL)); //隨機數發生器初始化函數,以時間為種子
sysdata = rand()%100+1; //隨機生成1到100的隨機數
printf("退出程序請按:ctrl + c!\n");
while(1)
{
printf("請輸入你猜的數據(1-100): ");
if(scanf("%d",&n) != 1) //用於判斷用戶是否結束游戲
{
break; //跳出while循環,結束游戲
}
sum++; //每輸入一次數據,猜的次數加1
if(sum == 10) // 當猜的次數大於10次的時候重新生成新的隨機數
{
if(n == sysdata) //最後一次猜數正確,輸出結果,結束游戲
{
printf("猜數正確,總共猜了%d次!\n",sum);
break; //跳出while循環,結束游戲
}
else //最後一次猜數不正確則重新開始游戲
{
printf("猜數次數超過%d次,重新開始游戲!\n",sum);
sysdata = rand()%100+1; //隨機生成1到100的隨機數
sum = 0;
}
}
else
{
if(n == sysdata)
{
printf("猜數正確,總共猜了%d次!\n",sum);//猜數正確,結束游戲
break; //跳出while循環,結束游戲
}
else if(n > sysdata)
{
printf("你猜的數據太大!\n");
}
else
{
printf("你猜的數據太小!\n");
}
}
}
printf("猜數游戲結束!\n");
return 0;
}

測試結果:
退出程序請按:ctrl + c!
請輸入你猜的數據(1-100): 50
你猜的數據太小!
請輸入你猜的數據(1-100): 75
你猜的數據太小!
請輸入你猜的數據(1-100): 85
你猜的數據太大!
請輸入你猜的數據(1-100): 80
你猜的數據太小!
請輸入你猜的數據(1-100): 82
你猜的數據太小!
請輸入你猜的數據(1-100): 84
猜數正確,總共猜了6次!
猜數游戲結束!
Press any key to continue

❻ 用C語言編寫猜數游戲

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int n,g,i=10;
srand((unsigned)time(NULL));
n=rand()%100+1;///老頌岩///////////////////////////隨機數
while(i--)
{
printf("Input A Number: ");/////////櫻升///////////侍御////提示輸入
scanf("%d",&g);
if(n==g)
break;
else if(g<n)
printf("Lower Than That\n");
else
printf("Higher Than That\n");
}
if(i==0)
printf("Game Over!\n");//////////////////////////////10次
else
printf("%d Times\n",10-i);///////////////////////////猜中
return 0;
}

❼ C語言猜數游戲(高低游戲)

#include <stdio.h>
#include <stdlib.h>
void clear()
{
scanf("%*[^\n]");
scanf("%*c");
} //清除輸入緩沖區

void Inspect(int number,int cn)
{
int innum,flag=0;
while(cn<7 && flag==0){
printf("輸入猜測的數據(0~99):");
scanf("%d",&innum);
if(innum==number)
{
flag=1;
printf("恭喜,猜扒搏鍵對了,共用了%d次!\n",cn);
}
else if(innum>number)
{
cn++;
printf("很遺憾,你猜錯了,是更小的數,你還有%d次春巧機會!\n"銀旁,7-cn);
}
else
{
cn++;
printf("很遺憾,你猜錯了,是更大的數,你還有%d次機會!\n",7-cn);
}
}
if(cn==7){
printf("你已經沒有機會嘗試了,請重新再來\n");
printf("%d\n",number);
}
} //游戲主體判斷函數

int main()
{
int number=rand()%100;
int cn=0;
char tp='y';
Inspect(number,cn);
while(tp=='y'){
printf("你還想繼續嘗試嗎?(y/n):");
clear(); //清除輸入緩沖區,防止之前的輸入影響後面的代碼執行
scanf("%c",&tp);
if(tp=='y') {cn=0;Inspect(number,cn);}
}
return 0;
}

❽ 猜數字C語言

其實這個程序很簡單,思路很清晰
首先產生一個隨機的四位數,且每位都不相同
int a[10]={0,1,2,3,4,5,6,7,8,9};
int b,c,i,t;
for(i=0;i<100;i++) //思路就是產生兩個10以內的隨機數,交換a中這兩個下標的數值,
{ //經過多次交換後,著a中的這10個數就打亂了次序,就像是隨機數了
b=rand()%10; //這個交換多少次,隨便了,只要打亂就可以
c=rand()%10;
if(b!=c)
{t=a[b];a[b]=a[c];a[c]=t;}
}
接著取出連續的a中的4個數,這樣就是那個隨機數
int suiji[4];
for(i=0;i<4;i++)
suiji[i]=a[i]; //這樣隨即中就是四個要猜的數,
要是想要第一位不是0,可以這么計算
int j;
for(i=0,j=0;j<4;i++)
{
if(a[0]==0)
continue;
suiji[j++]=a[i];
}
接下來就是輸入數據,
int shuru,shr[4],s;
while(1)
{
scanf("%d",&shuru);
s=shuru;
i=3;
while(s)
{
shr[i--]=s%10;
s/=10;
}
if(shuru>1000&&shuru<9999&&shr[0]!=shr[1]&&shr[0]!=shr[1]&&shr[0]!=shr[2]&&shr[0]!=shr[3]&&shr[1]!=shr[2]&&shr[1]!=shr[3]&&shr[2]!=shr[3])
//shuru在1000~9999之間並且各各位不相等,就跳出,否則繼續輸入
break;
else
printf("Error");
}
接著這個輸入的數據和這個隨機數的比較了,其實很簡單
m是位置和數字都對的。n是數字對,但位置不對的
int m=0,n=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(shr[i]==suiji[j])
n++;
for(i=0;i<4;i++)
if(shr[i]==suiji[i])
m++;
n-=m;

接著是列印輸入的數和mn(這個就是判斷的結果)這個我就不用再寫了吧
清屏用system("cls");

最後是總裝,先產生四位的隨機數,接著用一個大循環把輸入和比較還有列印判斷結果包含進去。
退出這個循環的條件有兩個,一個是m=4,一個是到了規定的次數

❾ C語言編程:編寫一個猜數的游戲,系統自動產生一個隨機數,你來猜,程序給出提示,直到猜對為止。

import java.util.*;

class Assignment8{

public static void main(String[]args){

Scanner sc=new Scanner(System.in);

int x=(int)(Math.random()*100);//生成一個0~100的隨機數

int y=-1;

System.out.println("已生成0~100的隨機整數,請輸入您所猜的數:");

while(x!=y)

{

y=sc.nextInt();

if(y&gt;x)

{

System.out.println("輸入的數過大");

}

else if(y&lt;x)

{

System.out.println("輸入的數過小");

}

}

System.out.println("正確!該隨機數是"+x);

sc.close();

}

}

(9)猜數游戲c語言擴展閱讀:

while循環的格式:while(表達式){語句;}

while循環的執行順序:當表達式為真,則執行下面的語句,語句執行完之後再判斷表達式是否為真,如果為真,再次執行下面的語句,然後再判斷表達式是否為真??就這樣一直循環下去,直到表達式為假,跳出循環。

例:

int a=NULL;

while(a&lt;10){

a++;//自加

if(a&gt;5)//不等while退出循環,直接判斷循環

{break;//跳出循環}

}

結果:結束後a的值為6。

熱點內容
cups腳本重啟不生效 發布:2024-11-05 11:34:19 瀏覽:997
解壓gta5 發布:2024-11-05 11:33:29 瀏覽:200
手游安卓cf怎麼退款 發布:2024-11-05 11:23:28 瀏覽:135
登錄qq時什麼是昵稱和密碼 發布:2024-11-05 11:21:38 瀏覽:955
ftp怎麼設置可以直接打開 發布:2024-11-05 11:20:49 瀏覽:823
問道全敏競技怎麼配置隊伍 發布:2024-11-05 11:20:04 瀏覽:832
app應用下載源碼下載 發布:2024-11-05 11:15:36 瀏覽:841
給公司伺服器配置公網ip 發布:2024-11-05 11:05:33 瀏覽:159
Sql兩表差集 發布:2024-11-05 11:04:10 瀏覽:590
GA演算法來源 發布:2024-11-05 11:00:32 瀏覽:746