當前位置:首頁 » 編程語言 » c語言在這個實驗中猜數游戲
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言在這個實驗中猜數游戲

發布時間: 2022-10-07 19:38:26

c語言猜數游戲

scanf("%c",i);

沒有取地址啊

而且c語言不允許在執行過程中定義新變數樓主的 char i應該定義在最上面

#include<stdlib.h>
#include<stdio.h>
#include"隨機函數"//這個是你的頭文件么--
main()
{
chari;
inta,b,c,d,x,y,z,h,n=0;
a=sui_ji()%10;
b=sui_ji()%10;
c=sui_ji()%10;
d=sui_ji()%10;
printf("猜數 ");
scanf("%d%d%d%d",&x,&y,&z,&h);
if(x==a)
{
printf("a是對的,");
n=n+1;
}
if(y==b)
{
printf("b是對的,");
n=n+1;
}
if(z==c)
{
printf("c是對的,");
n=n+1;
}
if(h==d)
{
printf("d是對的");
n=n+1;
} printf("共有%d個正確,錯了%d個。輸入r返回這4個數。",n,4-n);
scanf("%c",&i);
if(i=='r')
printf("這4個數為:%d,%d,%d,%d",a,b,c,d);
}

⑵ 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語言,編寫一個猜數字游戲

源碼如下:

/*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
#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語言猜數字游戲

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define random(x)
void main()
{
int zhucaidan();
void youxijieshao();
void bangzhu();
void kaishiyouxi();
int tuichu();
int choice,end=1;
system("color");
printf("**************************\n");
printf(" 游戲\n");
printf("**************************\n");
while(1)
{
choice=zhucaidan();
switch(choice)
{
case 1:youxijieshao();break;
case 2:bangzhu();break;
case 3:kaishiyouxi();break;
case 4:end=tuichu();break;
}
}
}
int zhucaidan()
{
int choice;
printf("\n *歡迎使用系統*\n");
printf("----------------------\n");
printf(" 1.游戲介紹\n");
printf(" 2.幫助\n");
printf(" 3.開始游戲\n");
printf(" 4.退出遊戲\n");
printf("----------------------\n");
printf("其請選擇功能模塊,輸入數字1-4:");
while(1)
{ scanf("%d",&choice);
if(choice>=1&&choice<=4) break;
else printf("輸入數字不正確,請重新輸入1-4:");
}
return choice;
}
void youxijieshao()
{
printf("\n猜數游戲是一款人機互動的小游戲,\n");
printf("在電腦提示的范圍下進行猜數並用鍵盤輸入電腦中。\n");
printf("電腦判斷你所輸入的數值與電腦默認給出的數值的大小並給出提示,\n");
printf("如果你所輸入的數字不是電腦默認的數值則需要重新輸入,直到正確為止!\n");
}
void bangzhu(){ printf("1.游戲規則:每個玩家有15次機會進行猜數,若15次之內還沒猜出則退出程序!\n");
printf("2.游戲建議:玩家可用對半猜的方法進行游戲,逐漸縮小猜數范圍,直到最後猜出正確答案!\n");
}
void kaishiyouxi()
{
int g,big=0,small=0;
int a=rand()%100;
srand(time(NULL));
printf("Computer number is given!Please input your number(0-100) is:\n");
while(1)
{ scanf("%d",&g);
if(g>a)
{
printf("your number is hign,try again\n");
big++;
}
else if(g<a)
{
printf("your number is low,try again\n");
small++;
}
else
{
if((big+small)<7)
{
printf("Congratulation!\n");
}
else if(((big+small)>7)&&((big+small)<15))
{
printf("I can bet you can do it better\n");
}
break;
}
}
printf("你猜對答案次數為:%d\n",(big+small));
select();
}
int tuichu()
{
int end;
end=0;
return end;
}
select()
{
char x;
while(1)
{
setbuf(stdin,NULL);
printf("是否退出?------y/n ");
scanf("%c",&x);
if(x=='y'||x=='Y')
exit(0);
else if(x=='n'||x=='N')
break;
}
}

⑹ C語言 猜數字游戲

#include<stdio.h>
#include<stdlib.h>

voidmain(){
srand(time(0)); //指定隨機數種子
intresult=rand()%1000+1; //產生1~1000的隨機數
intguess; //儲存猜測的數字

//循環提示輸入數字,直到猜測結果正確
do{
printf("請輸入猜測的數字 ");
scanf("%d",&guess);
if(guess<result)
{
printf("太低了 ");
}
elseif(guess>result)
{
printf("太高了 ");
}
}
while(guess!=result);

printf("太棒了 ");
}

⑺ c語言猜數字游戲

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>

char*getHint(char*secret,char*guess)
{
inti,countA=0,countB=0;
intcount[10]={0};
char*result=(char*)malloc(strlen(secret));
if(strlen(secret)!=strlen(guess))
{
printf("UnequalLength!");
returnNULL;
}
for(i=0;i<4;i++)
{
if(secret[i]==guess[i])
countA++;
else
{
count[secret[i]-'0']++;
if(count[secret[i]-'0']<=0)
{
countB++;
}
count[guess[i]-'0']--;
if(count[guess[i]-'0']>=0)
{
countB++;
}
}
}
sprintf(result,"%d%c%d%c",countA,'A',countB,'B');
returnresult;
}

intmain()
{
inti=0,j=0;
charnum[4]={0},input[5]={0};

srand((unsigned)time(NULL));//初始化隨機數
for(i=0;i<4;i++)//生成4個隨機數
{
num[i]=(rand()%10)+48;
}
for(j=0;j<10;j++)
{
printf("pleaseinput4-digtalsnumber[%d]times:",j+1);
fgets(input,sizeof(input),stdin);
fflush(stdin);
if(strlen(input)!=4)
{
continue;
}
printf("input[%s] ",input);

strcpy(input,getHint(num,input));
printf("ret=[%s] ",input);
if(strcmp(input,"4A0B")==0)
{
printf("YouareWin! ");
break;
}
}

return0;
}

⑻ 用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語言中猜題游戲。

includeamp;stdio.hamp;;includeamp;stdlib.hamp;;includeamp;math.hamp;;includeamp;time.hamp;;void main()/*主函數*/{ int a,b,times=0,i,j,guess=0,answer[5],g[5]; for(i=0;iamp;5;i++)/*隨即產生5個數*/ { srand((unsigned int)time(NULL));/*以當前時間為種子*/ answer[i]=rand()%9+1;/*保證為1-9的數,rand產生隨即0-65535的數,對9取余為0-8,都加1就是1-9了*/ for(j=0;jamp;i;j++) while(answer[i]==answer[j])/*檢查有沒有重復的數據,有就重新生成*/ { answer[i]=rand()%9+1; j=-1;/*新生成的數要重新檢查,此步後馬上執行j++*/ } } printf(;隨即的5個數是:;); for(i=0;iamp;5;i++) printf(;%d;,answer[i]);/*輸出結果到屏幕,便於測試*/ printf(;\n;); printf(;請輸入猜測數字:\n%;); a=0; while(a!=5)/*a記錄位置對並且數也對的,如果5個都對就是猜對了*/ { a=0; b=0;/*b記錄數是有的,但位置不對的個數*/ times++; printf(;第 %d 次猜測:\t;,times); scanf(;%d;,amp;amp;guess); while(guessamp;12345guessamp;;99999)/*如果猜的數超過這個范圍就是瞎猜的,肯定不對,再來一次*/ { printf(;你輸入了一個非常規數據,請重新輸入:\t;); scanf(;%d;,amp;amp;guess); } for(i=4;iamp;;-1;i--)/*把玩家猜的5個數放到數組中,便於檢查對錯*/ { g[i]=guess%10; guess=(guess-g[i])/10; } for(i=0;iamp;5;i++)/*檢查數據對錯*/ { for(j=0;jamp;5;j++) { if(g[i]==answer[j])/*如果猜得的數與結果的某個數一樣就把b加1*/ { b++; if(i==j)/*如果位置也對,那就是a加1了,對應的b已經加過,應該減1*/ { a++; b--; } } } } printf(;猜測結果:%dA%dB\n;,a,b); if(a==5) printf(;\t答案正確\n;); /*如果a=5就是猜對了*/ }}

⑽ C語言編寫猜數字游戲

#include <stdlib.h>
#include <stdio.h>
//#include <iostream>
unsigned char Num[4] = {0},getNum[4] = {0x20,0x20,0x20,0x20};
void help(void)
{
char i =0,j = 0;
for(i =0;i<4;i++)
{
for(j = 0;j<4;j++)
if(Num[j] == getNum[i])
{
if(i==j)
printf("%dth is correct!\r\n",i);
else
{
printf("%d is a correct data\r\n",getNum[i]);
}

}
else
{
if(i == 3&&j==3)
{printf("/********************small game*****************/\
input 4 data gess the random data,input h can get help\
");}
}
}
}

void main( void )
{
int orginal = 0,getdata = 0,i = 0,j = 0;
// { int a;a = 878*101;cout<<a<<endl}
//first = 0,second = 0,third = 0,fourth = 0;
/* Seed the random-number generator with GetTickCount so that
the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );

orginal = rand();
Num[3] = orginal%10000/1000;
Num[2] = orginal%1000/100;
Num[1] = orginal%1000%100/10;
Num[0] = orginal%10;
// printf(" %d",orginal);
for(i = 0;i<4;)
{

for(j = i+1;j<4;j++)
{
if(Num[i]==Num[j])
{ Num[i]++;if(Num[i]>9) Num[i] = 0;i=0;break;}
}
if(j == 4)i++;
}
get: for(i = 0;i<4;)
{
printf("input Num %d ",i);
scanf("%s",&getNum[i]);

if(getNum[i]-0x30>9||getNum[i]-0x30<0)
{
if (getNum[i] == 'H'||getNum[i] =='h')
{
help();
}
else
printf("input one num\r\n");
//if(i>0)i--;
}
else
{
getNum[i] -=0x30;
for(j = 0;j<i;j++)
{
if(getNum[i] == getNum[j])
{printf("have a same data,please input another\r\n"); break;}
}

if(j==i)
i++;
}
}
printf("you input num %d%d%d%d Y or N?\r\n",getNum[0],getNum[1],getNum[2],getNum[3]);
do{
scanf("%c",&j);
printf("%c",j);
if((j == 'N') || (j == 'n'))goto get;
}while( !((j == 'Y') || (j == 'y')));
printf("over");

}