猜数字1到100游戏编程c语言,最多猜n次(1到100猜数字游戏规则c语
求一个猜数字C语言代码,要求如下 计算机生成一个100以内的随机数,玩家来猜 记录猜的次数,最后打
/*
*百度知道越来越水了,这么简单的题就一个回答
*没见过限定头文件数目的。。而且是限定至少。。。。
*/
#includestdio.h
#includetime.h
#includestdlib.h
#includestring.h
int?getrand()
{
????srand(?(unsigned)time(NULL));
????return?rand()%100+1;
}
int?main()
{
????int?i;
????int?j?=?0;
????int?k?=?0;
????printf("请输入你猜的数字:");
????while?(1)
????{
????????scanf("%d",j);
????????if?(j??100?||?j??0)
????????{
????????????printf("输入不合法");
????????????return?-1;
????????}
????????i?=?getrand();
?????????if?(j?!=?i)
????????????k?++;
????????printf("随机出的数字为%d,你猜的数字为%d,你已经猜了%d次\n",i,j,k);
?????????if?(j?==?i)
????????????break;
????}
????printf("恭喜你猜对了,你猜了%d次\n",k+1);
}
c语言小游戏:猜数字?随机一个1-100之间的数,根据数据输入进行提示
//小游戏:猜数字 随机一个1-100之间的数,根据数据输入进行提示
#include stdlib.h
#include time.h
int main(void){
int value=0;
int num=0;
srand((unsigned int) time(NULL));
num=rand()%100+1; //1-100
while(1){
scanf("%d",value);
if(numvalue){
printf("您猜小了\n");
}
else if(numvalue){
printf("您猜大了\n");
}
else if(num=value){
printf("恭喜您猜对了\n");
break;
}
}
return 0;
}
猜数游戏c语言
#includestdio.h
#includestdlib.h //随机数生成函数srand()与rand() 所需的头文件
#includetime.h //time()所需的头文件
int main()
{
int sysdata;//系统生成的数据
int n; //所猜的数据
int sum = 0;//记录猜的次数
srand((unsigned)time(NULL)); //随机数发生器初始化函数,以时间为种子
sysdata = rand()%100+1; //随机生成1到100的随机数
printf("退出程序请按:ctrl + c!\n");
while(1)
{
printf("请输入你猜的数据(1-100): ");
if(scanf("%d",n) != 1) //用于判断用户是否结束游戏
{
break; //跳出while循环,结束游戏
}
sum++; //每输入一次数据,猜的次数加1
if(sum == 10) // 当猜的次数大于10次的时候重新生成新的随机数
{
if(n == sysdata) //最后一次猜数正确,输出结果,结束游戏
{
printf("猜数正确,总共猜了%d次!\n",sum);
break; //跳出while循环,结束游戏
}
else //最后一次猜数不正确则重新开始游戏
{
printf("猜数次数超过%d次,重新开始游戏!\n",sum);
sysdata = rand()%100+1; //随机生成1到100的随机数
sum = 0;
}
}
else
{
if(n == sysdata)
{
printf("猜数正确,总共猜了%d次!\n",sum);//猜数正确,结束游戏
break; //跳出while循环,结束游戏
}
else if(n sysdata)
{
printf("你猜的数据太大!\n");
}
else
{
printf("你猜的数据太小!\n");
}
}
}
printf("猜数游戏结束!\n");
return 0;
}
测试结果:
退出程序请按:ctrl + c!
请输入你猜的数据(1-100): 50
你猜的数据太小!
请输入你猜的数据(1-100): 75
你猜的数据太小!
请输入你猜的数据(1-100): 85
你猜的数据太大!
请输入你猜的数据(1-100): 80
你猜的数据太小!
请输入你猜的数据(1-100): 82
你猜的数据太小!
请输入你猜的数据(1-100): 84
猜数正确,总共猜了6次!
猜数游戏结束!
Press any key to continue
猜数游戏C语言程序设计
这道题不难,只要知道怎样用c语言生成1~100的随机数就很好办了!
附代码如下!
#includestdio.h
#include?stdlib.h
#include?math.h
int?main()
{
index:
?printf("请选择是否进行猜数!\n1:是\t0:否\n");
?int?j;
?scanf("%d",j);
?if(j?==?0)
??return?0;
?int?i,x?=?rand()?%?100?+?1,input;
?for(i?=?0;i?10;i?++)
?{
??printf("请输入猜想的1至100之间的整数:");
??scanf("%d",input);
??if(input?==?x)
??{
???printf("猜想正确!\t你一共猜想了%d次\n",i?+?1);
???goto?index;
??}
??if(input??x)
??{
???if((i?+?1)?=?10)
???{
????printf("\n此次猜想失败!\n");
????goto?index;
???}
???else
????printf("所猜数过小!\t请再猜一次!\n");
??}
??if(input??x)
??{
???if((i?+?1)?=?10)
???{
????printf("\n此次猜想失败!\n");
????goto?index;
???}
???else
????printf("所猜数过大!\t请再猜一次!\n");
??}
?}
}?
为了简化,使用了goto语句。
c语言:猜数字游戏代码
加了得分榜,没写排序,没时间了。自己加一下就OK
#include stdio.h
#include time.h
#include stdlib.h
#include string.h //以上的是要用到的头文件
int score=0;
void SELECT(int);
void Guess(int,int);
void Select();
void letsgo();
void NB(int); //以上的是函数原型
struct PLAYER
{
char name[10];
int plscore;
};
void save()
{ printf("您的得分是%i",score);
PLAYER player;
printf("请输入姓名:");
scanf("%s",player.name);
player.plscore=score;
FILE *fp;
if((fp=fopen("record.txt","ab"))==NULL)
{
printf("不能打开文件!");
exit(0);
}
fwrite(player,sizeof(PLAYER),1,fp);
printf("记录保存完毕!");
fclose(fp);
}
void print()
{
printf("分数榜:");
FILE *fp;
if((fp=fopen("record.txt","rb"))==NULL)
{
printf("不能打开文件!");
exit(0);
}
PLAYER player;
while(fread(player,sizeof(PLAYER),1,fp)==1)
{
printf("\n姓名:%s\n",player.name);
printf("分数:%i\n",player.plscore);
}
fclose(fp);
}
void main()
{
char end;
printf(" \t\t欢迎光临!!\n\t 在这里我将来测试你的运气!\n");
printf(" 请你猜下数字,但机会就只有三次!!\n");
printf("\n 1、开始游戏^__^\n 2、我是倒霉鬼,我不玩\n 3、查看分数榜");
printf(" 请选择1或2\n");
Select();
printf("\n按任意键退出");
fflush(stdin);
end=getchar();
if(score0)
save();
printf("Thanks For Playing \2 886\n");
}
void Select()
{
int s;
static int lihai=0;
fflush(stdin);
scanf("%d",s);
switch(s)
{
case 1:
letsgo();break;
case 2:
printf("唉,你不想玩,我就不逼你咯\n");exit(0);
case 3:print();
break;
default:
lihai++;
if(lihai==3||lihai==5)
{
NB(lihai);
break;
}
printf("你输入的是什么啊!重新输入 1 或 2 \n ");
Select();
}
}
void letsgo()
{
int select;
printf("请你选择猜数字的难度\n ");
printf("1、简单-猜测 0 到 9 的数字\n ");
printf("2、一般-猜测 0 到 99 的数字\n ");
printf("3、困难-猜测 0 到 999 的数字\n ");
printf("请不要乱选!!\n");
scanf("%d",select);
switch(select)
{
case 1:SELECT(10);break;
case 2:SELECT(100);break;
case 3:SELECT(1000);break;
case 4:print();
default:
{
printf("请不要乱选!!\n");
letsgo();
}
}
}
void NB(int l)
{
char a[20];
static int jihui=0;
printf("\n老大!我服了你,%d 次都输入错误。\n",l);
printf("\n可能你在捣乱~~\n");
printf("(如果不想结束,请输入[sorry]中括号内的否则结束游戏)\n");
fflush(stdin);
gets(a);
if (strcmp(a,"sorry")==0||strcmp(a,"SORRY")==0)
{
jihui++;
if(jihui==2)
{
printf("\n死性不改。道歉也没有用了!\n");
goto end;
}
printf("好吧。给你次机会请输入 1 或 2 \n ");
Select();
}
end:
printf("");
}
void SELECT(int n)
{
int num;
srand((unsigned)time(NULL));
num=rand()%n;
if(n==10)
{
n=3;
printf("\n你有 %d 次猜测的机会\n",n);
}
if(n==100)
{
n=5;
printf("\n你有 %d 次猜测的机会\n",n);
}
if(n==1000)
{
n=7;
printf("\n你有 %d 次猜测的机会\n",n);
}
Guess(num,n);
}
void Guess(int num,int n)
{
int search,k,o;
static int i=1;
char ans;
if(n==3)
k=10;
if(n==5)
k=100;
if(n==7)
k=1000;
o=(num-k/1)%k;
if(o0)
o=0;
printf("\n请猜这个数是多少(在%d到%d):",o,(k/5+num)%k);
fflush(stdin);
scanf("%d",search);
if(numsearch)
printf("\n小了\n");
if(numsearch)
printf("\n大了\n");
if(num==search)
{
printf("\n恭喜您了!你在第 %d 次猜对了\n",i);
score+=10;
printf("是否继续y / n:\n");
fflush(stdin);
ans=getchar();
if(ans=='y'||ans=='Y')
{
i=1;
letsgo();
}
}
else
{
i++;
if(i=n)
Guess(num,n);
else
{
printf("\n你的 %d 次机会已经没有了!!,答案是 %d \n",i-1,num);
printf("是否继续y / n:\n");
fflush(stdin);
ans=getchar();
if(ans=='y'||ans=='Y')
{
i=1;
letsgo();
}
}
}
}
满意请采纳。
用C语言编写一个猜数字游戏的程序(最好附带说明)
我住几天院估计没时间了 没有那么复杂只是需要调是而已 下边是我的代码还没完善
#include stdlib.h
#include stdio.h
//#include iostream
unsigned char Num[4] = {0},getNum[4] = {0x20,0x20,0x20,0x20};
void help(void)
{
char i =0,j = 0;
for(i =0;i4;i++)
{
for(j = 0;j4;j++)
if(Num[j] == getNum[i])
{
if(i==j)
printf("%dth is correct!\r\n",i);
else
{
printf("%d is a correct data\r\n",getNum[i]);
}
}
else
{
if(i == 3j==3)
{printf("/********************small game*****************/\
input 4 data gess the random data,input h can get help\
");}
}
}
}
void main( void )
{
int orginal = 0,getdata = 0,i = 0,j = 0;
// { int a;a = 878*101;coutaendl}
//first = 0,second = 0,third = 0,fourth = 0;
/* Seed the random-number generator with GetTickCount so that
the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );
orginal = rand();
Num[3] = orginal%10000/1000;
Num[2] = orginal%1000/100;
Num[1] = orginal%1000%100/10;
Num[0] = orginal%10;
// printf(" %d",orginal);
for(i = 0;i4;)
{
for(j = i+1;j4;j++)
{
if(Num[i]==Num[j])
{ Num[i]++;if(Num[i]9) Num[i] = 0;i=0;break;}
}
if(j == 4)i++;
}
get: for(i = 0;i4;)
{
printf("input Num %d ",i);
scanf("%s",getNum[i]);
if(getNum[i]-0x309||getNum[i]-0x300)
{
if (getNum[i] == 'H'||getNum[i] =='h')
{
help();
}
else
printf("input one num\r\n");
//if(i0)i--;
}
else
{
getNum[i] -=0x30;
for(j = 0;ji;j++)
{
if(getNum[i] == getNum[j])
{printf("have a same data,please input another\r\n"); break;}
}
if(j==i)
i++;
}
}
printf("you input num %d%d%d%d Y or N?\r\n",getNum[0],getNum[1],getNum[2],getNum[3]);
do{
scanf("%c",j);
printf("%c",j);
if((j == 'N') || (j == 'n'))goto get;
}while( !((j == 'Y') || (j == 'y')));
printf("over");
}