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循环*/
}
}
}
}
已经测试过,如果还有不明白的可以找我