猜数字1到100游戏编程c语言5次机会(c语言猜数字1到100游戏do whi

http://www.itjxue.com  2023-03-17 18:16  来源:未知  点击次数: 

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语言程序设计

这道题不难,只要知道怎样用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语言

#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语言程序设计题《猜数字游戏》

#include stdio.h

#include stdlib.h

#include time.h

#define N 4/*随机抽N个数*/

#define NUM 8/*NUM次猜数的机会*/

void detect(char s[])

{

int i,j,num;

int a,b;

char ch[N];

for(num=0;numNUM;num++)

{

a=b=0;

printf("第%d次机会:",num+1);

for(i=0;iN;i++)

{

ch[i]=getch();

if(ch[i]='0'ch[i]='9')

{

for(j=0;ji;j++)

if(ch[i]==ch[j]) break;

if(ji) i--;

else

{

putchar(ch[i]);

for(j=0;jN;j++)

{

if(ch[i]==s[j])

if(i==j) a++;

else b++;

}

}

}

else

i--;

}

printf(" %dA%dB\n",a,b);

if(a==N)

{

printf("恭喜你答对了!\n");

break;

}

}

if(num==NUM)

printf("很遗憾,正确答案为:%s\n",s);

}

main()

{

int i,j;

char s[N+1];

srand(time(0));

for(i=0;iN;i++)

{

s[i]=rand()%10;

for(j=0;ji;j++)

if(s[i]==s[j]) break;

if(ji) i--;

else

{

s[i]+='0';

putchar('*');

}

}

s[i]='\0';

printf("\n总共%d次机会\n",NUM);

detect(s);

}

_______________________

运行结果:

-----------------------

****

总共8次机会

第1次机会:1234 0A2B

第2次机会:2345 0A2B

第3次机会:3456 1A0B

第4次机会:4567 0A1B

第5次机会:5678 0A1B

第6次机会:6789 1A1B

第7次机会:3792 0A2B

第8次机会:9482 1A3B

很遗憾,正确答案为:8429

请按任意键继续. . .

(责任编辑:IT教学网)

更多

推荐word文章