【c语言】编写一个猜数字游戏

供稿:hz-xin.com     日期:2025-01-13
c语言编写一个猜数字游戏

同学你好!
下面是我自己做了一个,运行是成功的。希望对你有所帮助!

#include
#include
#include
#include

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!
");
else if(j<i)
printf("Too low!
");
else
{
printf("Right!
");
printf("The cnt is:%d
",cnt);
printf("Wanna continue? 1.continue 0.exit
");
scanf("%d",&guard);/*选择是否继续*/
break;
}
}
}
}

希望我的回答对你有帮助,祝你的C成绩进步

源码如下:
/* File: guess.c */
#include /* standard input & output support */
#include /* srand() rand() */
#include /* time() */
/* 宏定义 */
#define NUMBER_LENGTH 5 /* 随机数长度 */
#define NUMBER_LIMIT 10 /* 随机数限制, 每一位0-9 */
#define INPUT_LENTH 128 /* 输入缓冲区大小 */
char goal[NUMBER_LENGTH] = {0}; /* 保存随机数 */
char flag[NUMBER_LIMIT] = {0}; /* 保存随机数标志, 保证不重复 */
char input[INPUT_LENTH] = {0}; /* 保存输入 */
/* 初始化用于保存数据的数组 */
void initData()
{
int i = 0;
while (i < NUMBER_LENGTH)
goal[i++] = 0;

i = 0;
while (i < NUMBER_LIMIT)
{
flag[i++] = 0;
}
}
/* 初始化用于保存缓冲区的数组 */
void initBuffer()
{
int i = 0;
while (i < INPUT_LENTH)
input[i++] = 0;
}
/* 显示猜测结果 */
void display()
{
int count = 0;

int i = 0;
while (i < NUMBER_LENGTH)
{
if (input[i] == goal[i])
{
printf("%c", 'o');
count++;
}
else
{
printf("%c", 'x');
}

i++;
}

printf("
RIGHT: %d bit(s)
", count);

if (count == NUMBER_LENGTH)
{
printf("You win! The number is %s.
", goal);

exit(0);
}
}
/* 生成随机数 */
void general()
{
/* 以时间作为时间种子保证生成的随机数真正具有随机性质 */
srand((unsigned int)time(NULL));

int i = 0;
while (i < NUMBER_LENGTH)
{
char tmp;
do
{
tmp = '0' + ((i != 0) ? (rand() % 10) : (1 + rand() % 9));
} while (flag[tmp] != 0);

flag[tmp] = 1;
goal[i++] = tmp;
}
}
/* 输入方法,用于猜测 */
void guess()
{
printf("Please input the number you guessed:
");
scanf("%s", input);
display();
initBuffer();
}
/* 主函数,程序主框架 */
int main (int argc, const char * argv[])
{
initData();
initBuffer();
general();
while (1) guess();
return 0;
}
==============================================
运行结果见附图,希望我的回答能够对你有所帮助。

已经改正,如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void circle(int i)
{
int n ;
printf("请输入您所猜的数字(0-100) \n");
scanf("%d",&n);
if(i<n)
{
printf("the number is larger,input agine.\n");
circle(i);
}

if(i>n)
{
printf("the number is smaller.input agine \n");
circle(i);
}

if(i==n)//?不是
printf("the number is %d so congratulations!you got it!",i);

}

int main()
{

int flag =1;

printf("This is a small game,what you should do is just guess a intange number.\n");
printf("Now,please guess the number!\n");
srand((unsigned)time(NULL));
while(flag)
{
int i=rand()%100;//?使用 % 而不是 / ,产生的数字在0-100之间,放在循环体内,每次循环都产生一个随机数
circle(i);

printf("\n继续玩请输入 1,退出请输入 0");
scanf("%d",&flag);
}

getchar();
return 0;

}

/*编译工具:C-Free 4.0 已经编译通过*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void produce(int *,int* ); //电脑产生随机数和随机产生一个猜的次数
int judge(int ,int ); //判断猜对与否 猜对返回0 猜错返回正数或者负数

int main ()
{
int result,guess,count,a=0,b=100,n;
produce(&result,&count); //首先由电脑产生一个随机数并得到猜的次数
n=count;
while(count)
{
printf("You still have %d chances left!\n",count-1);
printf("Pease input your guess:");
scanf("%d",&guess);
if(judge(result,guess)>0)
{
a=guess; //太小了 更新猜数范围的下限
printf("太小了!\n新的范围:%d-%d\n",a,b);
}
else if(judge(result,guess)<0)
{
b=guess; //太大了 更新猜数范围的上限
printf("太大了!\n新的范围:%d-%d\n",a,b);
}
else
break;
count--;
}
if(count>0)
printf("Congratulation! your guess is right!\n");
else
printf("天啊%d次你都猜错了。杯具。。。",n);
return 0;
}
void produce(int *result,int* count)
{
srand(time(NULL));
*result=rand()%100; //产生0-100之间的数
*count=rand()%10+3; //产生3-12之间的数来代表你猜数的机会
}
int judge(int result,int guess)
{
return (result-guess);
}

scanf("%d",n);
又是这里的问题 &
你要不加这个符号,系统给赋的值肯定是一个很小的负数,所以是这种结果了

你要进行多次猜的话
void main()
{
int i,n;
int j=0;
srand((unsigned)time(NULL));

printf("%d\n",i);
printf("This is a small game,what you should do is just guess a intange number.\n");
printf("Now,please guess the number!\n");
while(j<100)
{
i=rand()%100;
while(i!=n)
{ scanf("%d",&n);
circle(n);
}
j++;
}
getch();

}
嵌套循环不就可以了

不懂程序 无能为力~@~

c语言猜数字
);scanf("%c",&ch);if(ch == 'a')break;continue;} if(i > 10) \/\/机会用完了 { printf("你的机会已经用完,没机会再猜了\\n");break;} } if(i < 3)printf("优秀\\n"); \/\/ 对游戏者的评价 else if(i < 8)printf("良好\\n");else printf(" 差\\n");} ...

猜数字游戏 C语言简单程序代码
大概流程如下:随机生成一个0到100的数X while(1) { 提示用户输入一个数 取得用户输入Y if (Y>X) { 提示:小一些 } else if (Y<X) { 提示:大一些 } else { 提示:猜中了 break;\/\/跳出循环 } }

C语言 编写一个猜数字游戏,规则:使用随机函数产生一个5位数,输入猜测...
{ g[i]=k%10;k=(k-g[i])\/10;} for(i=0;i<5;i++)for(j=0;j<5;j++){ if(g[i]==a[j]){ A++;if(i==j)B=i+1;} } if(A==5)printf("你猜测的全部正确\\n");else { printf("你猜对的个数:%d\\n",A);printf("你猜对数字的位置:第%d个\\n",B);} } ...

用C语言编写一段猜数字游戏,跟一般的不一样,规则如下
进行判断练习,若猜数是50,猜了40,范围变成40到100,若猜60,范围变成40到60.通过循环来控制。include<stdio.h> int main(void){ int a,low,k,he,d;k=50; \/\/k为答案数 low=1;he=100;scanf("%d",&a);while(a!=k){ if(a<k){ low=a;printf("猜数的范围是:%d到%d\\n",low...

猜数字游戏C语言编程
include void main(){ int magic,guess,k;char over,c;printf("退出游戏请输入z\\n");do { srand (time(NULL));magic=rand()%100+1;printf("请输入猜测的数字1~100\\n");for(k=0;guess!=magic;k++){ scanf("%d",&guess);if (guess==magic)printf("恭喜,你猜对了!\\n");scanf(...

设计一个C语言程序 猜数游戏 规则:电脑随机产生一个1-100的随机数让玩 ...
include <stdio.h>#include <stdlib.h> #includeint main(void){int rst,g;int guesscount;\/\/用随机函数了srand( time(NULL) );printf("猜数游戏,输入-1退出.\\r\\nLet's go !\\r\\n\\r\\n");do{\/\/生成随机数rst = (int)((double) rand() \/(double) RAND_MAX * 100);\/\/重置猜的...

C语言编程题(设计一个猜数字的小游戏)满意再加200分!!!
游戏规则:①游戏软件随机产生四个数字,但不显示,给用户提供输入提示符,让用户猜4个数字的值和位置顺序。如果数字值和位置顺序均正确,则猜数字成功。②用户有10次猜数字机会,如果... 游戏规则:① 游戏软件随机产生四个数字,但不显示,给用户提供输入提示符,让用户猜4个数字的值和位置顺序。如果数字值和位置顺序均...

帮忙改一C语言的猜数字游戏的程序〔代码已给出〕!!!
printf("无效字符!开始游戏吗 ?(Y?N)");fflush(stdin);control=getchar();printf("%c",control);} while((control=='y')||(control=='Y')){ system("cls");srand((unsigned)time(NULL));rand1=rand()%10+1;\/\/printf("%d",rand1);for(i=0;i<20;i++){ printf("请输入你猜...

c语言,使用随机函数rand()编写一个猜数字的游戏程序
测试数据:请输入您猜的那个数:10 第1次猜测,很遗憾您猜小了!请输入您猜的那个数:15 第2次猜测,很遗憾您猜大了!请输入您猜的那个数:12 第3次猜测,恭喜您猜对了,电脑随机数是12!代码:include "stdio.h"include "conio.h"include include <math.h> include<stdlib.h> main(){ int ...

用C语言编写一个具有简单界面的猜数字游戏
分析:先产生一个随机数N。然后输入数I,如果i大于N,则提示大于信息。如果I小于N,则提示小于信息。直到I==N,则输出成功信息。这是我用C语言写的。环境:WIN-C ,TORBO C,如果是C++环境把倒数第二排getch();删掉!已经调试成功:main(){ int i=0,n;srand(time(0));n=rand()%100+1;w...