c語言猜字游戲
A. 設計一個猜字游戲的c語言程序
以下程序的功能是隨機產生數字,要求用戶猜測程序中產生的隨機數字,並輸入,根據猜測的結果程序給出不同的響應,如果15次沒猜對則退出。
源程序如下:
#include <stdio.h>
#include<stdlib.h>
#include<ctype.h>
main()
{
int count;/*猜數字的次數*/
int number;/*系統產生的隨機數字*/
int guess;/*程序員輸入數字*/
char yes='Y';
clrscr();
printf("\nNow let us play the game.\n Guess the number:");
while (toupper(yes)=='Y')
{
count=0;
randomize();
number=random(100)+1;
do
{
do
{
printf("\nInput an integer number(1~100):");
scanf("%d",&guess);
}while(!(guess>=1&&guess<=100));/*結束第二層DO~WHILE循環*/
if (guess<number)
printf("\n Your answer is low,try again!");/*如果用戶輸入的數字小於系統隨機數,則輸出數字太小的提示信息*/
if (guess>number)
printf("\n Your answer is high,try again!");/*如果用戶輸入的數字大於系統隨機數,則輸出數字太小的提示信息*/
count++;/*猜測次數加一*/
if (count==15)
{
printf("\n This is the %d times! Think it hard next!",count);
exit(0);/*如猜測15次還沒猜對,則退出遊戲*/
}
}while (!(guess==number));
if (count<=7)/*猜測的次數小於7次*/
{
printf("\n You have got it in %d times.\n",count);
printf("\n you guess right,Congretulations!");/*游戲成功則提示祝賀信息*/
}
else
{
printf("\n You got it in %d times.\n",count);
printf("\n I bet you can do it better!");/*游戲失敗則提示鼓勵信息*/
}
printf("\n NEXT?(Y/N):");/*選擇是否重新游戲*/
scanf("%c",&yes);
}
}
運行程序時請用戶猜數字,該數字由系統隨機產生,用戶最多有七次猜測的機會,如果在七次內猜對數字,則程序顯示祝賀信息,如果用戶大於七次猜對數字,則程序顯示鼓勵信息,如果用戶連續15次都沒有猜對數字,則游戲自動退出。結束一次游戲後,系統詢問用戶進行下一次猜數字游戲,用戶輸入「Y」則開始下一次猜數字游戲,用戶如果輸入「N」則退出遊戲。
B. C語言寫猜字游戲
/*你說的功能基本達到了,但是樣式沒有怎麼調整,你自己看下吧*/
#include<stdio.h>
#include<stdlib.h>
void getNum(int a[]) /*產生隨機數*/
{int i,j;
randomize();
a[0]=random(10);
for(i=1;i<4;i++)
{
a[i]=random(10);
for(j=i-1;j>=0;j--)
if(a[i]==a[j])
{i--;
break;
}
}
}
void inputNum(int b[]) /*輸入數字,並保證沒有重復數字*/
{int i,j;
puts("Input number:");
laber:;
scanf("%d%d%d%d",&b[0],&b[1],&b[2],&b[3]);
for(i=3;i>0;i--)
for(j=0;j<i;j++)
if(b[j]==b[i])
{puts("Input again:");
goto laber;
}
}
main()
{int a[4],b[4],c[10][4],A=0,B=0,correct[10][2],count=0,i,j;
char ch;
laber:;
system("cls");
getNum(a);
while(count<10) /*最多猜10次*/
{puts("Browse the historic document?(Y/N)"); /*是否查看歷史記錄*/
ch=getchar();
if(ch=='Y'||ch=='y')
for(i=0;i<count;i++)
{printf("%d:",i+1);
for(j=0;j<4;j++)
printf("%d\t",c[i][j]);
printf("%dA %dB",correct[i][0],correct[i][1]);
putchar('\n');
}
putchar('\n');
inputNum(b);
for(i=0;i<4;i++)
c[count][i]=b[i];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{if(a[i]==b[j]&&i==j)
A++;
else if(a[i]==b[j]&&i!=j)
B++;
}
if(A==4)
{puts("Congratulations!!");
getch();
break;
}
else
printf("%dA %dB\n",A,B);
correct[count][0]=A;
correct[count][1]=B;
count++;
A=0;B=0;
getchar();
}
getchar(); /*是否再猜一次*/
puts("Guess again?");
ch=getchar();
if(ch=='Y'||ch=='y')
goto laber;
}
C. 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;
}
D. c語言猜字游戲
pow10(i)改成pow(10,i)就行了,函數的形式被你寫錯了
E. c語言編寫一個猜數字游戲
同學你好!
下面是我自己做了一個,運行是成功的。希望對你有所幫助!
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
void
main()
{
int
i,j,cnt,guard=1;
while(guard)/*利用guard來判斷是否繼續進行游戲*/
{
srand((unsigned)time(NULL));
i=rand()%100;/*隨機生成整數*/
cnt=0;/*比較次數置零*/
for(;;)
{
printf("Please
input
the
data:");
scanf("%d",&j);
cnt++;/*次數累加*/
if(j>i)
printf("Too
high!\n");
else
if(j<i)
printf("Too
low!\n");
else
{
printf("Right!\n");
printf("The
cnt
is:%d\n",cnt);
printf("Wanna
continue?
1.continue
0.exit\n");
scanf("%d",&guard);/*選擇是否繼續*/
break;
}
}
}
}
希望我的回答對你有幫助,祝你的C成績進步
F. 怎樣用C語言實現猜字游戲
//電腦隨機生成一個50以內的整數,然後從鍵盤輸入一個整數猜系統生成的數,直到猜對為止,並輸出所猜次數。
#include<stdio.h>
#include
<stdlib.h>
#include<time.h>
void
main()
{
int
count=0;
int
flag=1;
do
{
srand(time(NULL));
int
num1,num=rand()%51;
printf("請輸入您要猜的數(0-50):");
scanf("%d",&num1);
if(num1>50)
{
printf("輸入有誤,請重新輸入\n");
continue;
}
printf("隨機數為:%d\n",num);
count++;
if(num1==num)
{
flag=0;
}
printf("猜錯了!3請繼續\n\n\n");
}while(flag);
printf("%d",count);
}
G. C語言猜字游戲設計
#include <stdio.h>
void main()
{
int s=5,j;
int i,a[4];
printf(" 猜數游戲,您有五次機會。\n\n\n\n");
for(i=0;i<5;i++)
{
printf("請輸入第%d個數:",i+1);
scanf("%d",&a[i]);
if(a[i]==s)
{
printf("猜對了!\n");
j=0;
break;
}
else
{
if(a[i]>s)
{
printf("猜大了!\n");
j=1;
}
else
{
printf("猜小了!\n");
j=1;
}
}
}
if(j==1)
{
printf("不好意思!你沒有猜中!");
}
}
不懂就追問
H. 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;
}
==============================================
運行結果見附圖,希望我的回答能夠對你有所幫助。
I. C語言猜字游戲
我用qt寫過,有源碼
http://www.qtcn.org/bbs/read.php?tid=11224&fpage=1&toread=&page=1
J. 用c語言編猜字游戲,急~
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
int
main()
{
char
ch;
int
input,rad,i;
time_t
start,end;
printf("do
you
want
to
play
it?(y/n)\n");
while(1)
{
scanf("\n%c",&ch);
if(ch=='n')
exit(0);
srand((unsigned
int)time(NULL));
/*產生隨機數*/
rad=(rand()%101);
printf("Please
input
a
number\n");
start=time(NULL);
/*開始計時*/
while(1)
{
scanf("%d",&input);
if(input<rad)
printf("please
input
a
little
bigger\n");
else
if(input>rad)
printf("please
input
a
little
smaller\n");
else
{
end=time(NULL);
/*回答正確,計時結束*/
if(difftime(end,start)<=15)
printf("你太聰明了!\n");
printf("Correct!!\nDo
you
want
to
try
again?(y/n)\n");
break;
/*退出第二層while循環*/
}
}
}
}
已經測試過,如果還有不明白的可以找我