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;
}
==============================================
运行结果见附图,希望我的回答能够对你有所帮助。
源码如下:
/* File: guess.c */
#include <stdio.h> /* standard input & output support */
#include <stdlib.h> /* srand() rand() */
#include <time.h> /* 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<math.h>
#include<time.h>
void main()/*主函数*/
{
int a,b,times=0,i,j,guess=0,answer[5],g[5];
for(i=0;i<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;j<i;j++)
while(answer[i]==answer[j])/*检查有没有重复的数据,有就重新生成*/
{
answer[i]=rand()%9+1;
j=-1;/*新生成的数要重新检查,此步后马上执行j++*/
}
}
printf("随即的5个数是:");
for(i=0;i<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",&guess);
while(guess<12345||guess>99999)/*如果猜的数超过这个范围就是瞎猜的,肯定不对,再来一次*/
{
printf("你输入了一个非常规数据,请重新输入:\t");
scanf("%d",&guess);
}
for(i=4;i>-1;i--)/*把玩家猜的5个数放到数组中,便于检查对错*/
{
g[i]=guess%10;
guess=(guess-g[i])/10;
}
for(i=0;i<5;i++)/*检查数据对错*/
{
for(j=0;j<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就是猜对了*/
}
}
楼上厉害!给楼上分吧···
用JAVA语言编写一个“猜数字游戏”的程序
在这个简单的Java程序中,我们实现了一个“猜数字游戏”。程序首先生成一个1到10之间的随机数,然后提示用户输入一个猜测的数字。根据用户的输入,程序会给出相应的提示,告诉用户猜测的数字是“大了”还是“小了”。用户有最多10次机会来猜中这个数字。代码中的变量b代表随机生成的目标数字,通过Math....
用C语言编写一个“猜数字游戏”的程序
void main(){ int Win = rand() % 90 + 10; \/\/随机赋值 int i = 0;int n;char ch;printf("please input n\\n");scanf("%d",&n);while(1){ if(n > Win) \/\/猜的数字大了 { printf("you guess number big\\n");i++;scanf("%d",&n);} if(n < Win) \/\/猜的...
用C语言编写猜数游戏
if(i==0)printf("Game Over!\\n");\/\/\/10次 else printf("%d Times\\n",10-i);\/\/\/猜中 return 0;}
c语言编程 编一个猜数字游戏
include <stdlib.h> \/* srand() rand() *\/ include \/* time() *\/ \/* 宏定义 *\/ define NUMBER_LENGTH 5 \/* 随机数长度 *\/ define NUMBER_LIMIT 10 \/* 随机数限制, 每一位0-9 *\/ define INPUT_LENTH 128 \/* 输入缓冲区大小 *\/ char goal[NUMBER_LENGTH] = ...
猜数字游戏C语言编程
{ 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",&over);if (...
c语言设计一个猜数游戏,电脑会自动提示大了或小了,直到猜对为止
include "time.h"include "stdlib.h"int main(int argc, char* argv[]){ int r;int g;srand(time(0));r = rand()%1000;\/\/产生一个小于1000的随机数,让大家猜 printf("请输入你猜的数:");scanf("%d",&g);while(g != r)\/\/没猜中就循环 { if(g > r){ printf("大了,请...
【c语言】编写一个猜数字游戏
include 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...
C++猜数字游戏
程序首先提示用户输入一个数,并读取输入的数字。随后,通过rand()函数生成一个在1到100之间的随机数,并输出该随机数作为电脑的第一次猜测。接下来,通过一个while循环来实现猜数字过程,循环最多执行三次。在循环内部,程序提示用户选择结果,用户可以选择1表示大于,2表示小于,3表示等于。根据用户的...
C# 窗体应用程序 猜数字游戏 代码
public static void main(){console.writeline("请输入一个0~100的数");random ran = new random();int y = ran.next(101);int a = 0;while (true){a++;int x = int.parse(console.readline());if (x > y){console.writeline("你猜的数大了");}else if (x < y){console....
C语言题目 编程实现数字猜谜游戏!
然后询问是否继续进行猜数字游戏 下面是一个简单的代码 include <stdio.h>#include void clean_input_buf(void){ while(getchar() != '\\n');}int make_num(int num){ srand(num); return 1+rand()%20;}int guess_num(void){ int i=3; int n; int num; num=m...