用C语言编写猜数游戏

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

#include
#include
#include
#define Range 100
int guess(int k){
int input;
printf("请输入数字:");
scanf("%d",&input);
if(input==k)return 1;
if(input>k)return -1;
if(input<k)return -2;
}
void score(int time){
if(time<5){printf("恭喜! Score: 100
");return;}
if(time>=5&&time<11){printf("超过时间~ Score: 80
");return;}
else{printf("笨! Score: 50
");}
}
int main(){
int aim;
srandom((unsigned)time(0));
aim = random()%Range;
int i,flag;
i=flag=0;
while(flag!=1){
flag=guess(aim);
if(flag==-1)printf("大了!
");
if(flag==-2)printf("小了!
");
if(flag==1)printf("恭喜答对! 此数是:%d
",aim);
i++;
}
score(i);
return 0;
}

源码如下:
/* 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<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;
}

代码很简单,只给你中间的那些判断吧

生成随机数,
a=rand()%99+1;
开始猜
for(i=0;i<9;i++)
{
while(1)
{
printf("input:");
scanf("%d",&b);
if(b<=100&&b>=0) //判断范围,字符的判断自己加上吧,呵呵
break;
else
printf("error\n");
}
if(a>b)
printf("小于\n");
else if(a<b)
printf("大于\n");
else
{
printf("恭喜\n次数为%d\n",i+1);
break;
}
}
if(i==10)
printf("到10次了");

要是想多次猜测,那么加一个大循环,用输入y/n来选择是否继续

用C现在还不会,不过用vb应该可以!

用vb

#include <stdio.h>
#include <time.h>//时间需要的函数
#include <stdlib.h>//随机数生成函数srand()与rand() 所需的头文件
main()
{
int i,j,x,a;
printf("
猜数游戏
");
srand(time(NULL));//定义随机函数
j=rand()%100;//取1-100内
printf("
请输入你要猜的数(1-100以内):");
scanf("%d",&x);//输入要猜的数
a=j-x;//随机数-你猜的数,若结果为0,则说明相等,直接跳过while输出最后一句
while(a!=0){//若两数相减不为0,说明不等,执行while,进行循环判断
if(x>j){
printf("
猜大了
");
}else if(x<j){
printf("
猜小了
");
}
printf("
请重新输入(1-100以内):");
scanf("%d",&x);
if(x==j){//直到两数相等,跳出循环
break;
}
}
printf("
恭喜您猜对了
");
}

补充:rand定义的随机数不是真随机数,每次执行程序时其实产生的是与上一次一样的随机数
,所以采用srand函数,与每时每刻的时间挂钩,这样才能做到真的随机,这个详见百度


用C语言编写的小游戏代码是什么?
printf("\\n\\n 猜 数 字 小 游 戏\\n\\n");printf(" 猜四个数字,如数字与顺序都正确记为A,数字正确位置不对记为B.\\n");} void start() \/\/ 开始游戏 { int m, n; \/\/ m是完全猜对的个数, n是顺序不对或错的个数 while (1) { srand((unsigned)time(NULL)); \/\/ 初始...

用C语言编写一个“猜数字游戏”的程序
printf("你现在想退出吗? 输入a结束\\n");scanf("%c",&ch);if(ch == 'a')break;continue;} if(i > 10) \/\/机会用完了 { printf("你的机会已经用完,没机会再猜了\\n");break;} } if(i < 3)printf("太棒了\\n"); \/\/ 对游戏者的评价 else if(i < 5)printf("非常好\\n...

猜数字游戏C语言编程
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",&...

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语言设计一个猜数游戏,电脑会自动提示大了或小了,直到猜对为止
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("大了,请重新输入:");} els...

用C语言编写猜数游戏
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语言编写的猜数字游戏程序
char s[88],r[88];printf(" 本游戏只能猜8次!!\\n请输入游戏四位不重复的数字\\n");scanf("%s",s);if(strlen(s)!=4)exit(1);else { int t=0;while(1){ t++;int a=0,b=0;printf("输入猜的4位数\\n");scanf("%s",r);for(int i=0;i<4;i++)for(int j=0;j<4;j...

C语言——猜数字小游戏 如何用rand,srand,time来完成随机数发生
在C语言中实现猜数字小游戏,关键在于生成随机数。实现这一功能,需要使用三个核心函数:rand,srand,以及time。rand函数用于生成随机数。当未调用srand函数时,rand默认以1播种。srand函数用于播种随机数生成器,每次调用时,必须提供一个种子值,这样可以生成相同的随机数序列。rand函数返回一个介于0到RAND...

【c语言】编写一个猜数字游戏
include<stdlib.h> 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==...

用C语言编写一段猜数字游戏,跟一般的不一样,规则如下
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,he);} if(a>k){ he=a;printf("猜数的范围是:%d到%d\\n",low,he);} scanf("%d",&a);} printf("答案...