猜數游戲c語言
❶ 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>x)
{
System.out.println("輸入的數過大");
}
else if(y<x)
{
System.out.println("輸入的數過小");
}
}
System.out.println("正確!該隨機數是"+x);
sc.close();
}
}
(9)猜數游戲c語言擴展閱讀:
while循環的格式:while(表達式){語句;}
while循環的執行順序:當表達式為真,則執行下面的語句,語句執行完之後再判斷表達式是否為真,如果為真,再次執行下面的語句,然後再判斷表達式是否為真??就這樣一直循環下去,直到表達式為假,跳出循環。
例:
int a=NULL;
while(a<10){
a++;//自加
if(a>5)//不等while退出循環,直接判斷循環
{break;//跳出循環}
}
結果:結束後a的值為6。