猜数字游戏c语言编程代码猜对几个数字(猜数字小游戏c语言)

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

求C语言编写的猜数字游戏程序

#includeiostream

using namespace std;

int main()

{

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;i4;i++)

for(int j=0;j4;j++)

{

if(s[i]==r[j])a++;

if(s[i]==r[j]i==j)b++;

}

printf("本次结果:%dA%dB\n",a,b);

if(b==4){printf("恭喜您用%d次猜出来\n",t);break;}

if(t==2){printf("很遗憾! game over !\n");break;}

}

}

return 0;

}

不知是否符合要求!

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

#include

#include

#include

int

i,j=1;

int

scores[6];

void

main()

{

char

control='\0';

int

rand1,guess,score;

printf("开始游戏吗

?(y?n)");

control=getchar();

while(control!='y'control!='y'control!='n'control!='n')//屏蔽其他按键

{

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;i20;i++)

{

printf("请输入你猜的数:");

scanf("%d",guess);

if(guessrand1)printf("大啦!\n");

else

if(guess

:猜对了\a\n");//响铃\a

break;

}

i++;

}

i+=1;

if(i==1)

{

score=100;

scores[0]++;

}

else

if(i=2i=3)

{

score=90;

scores[1]++;

}

else

if(i=4i=6)

{

score=80;

scores[2]++;

}

else

if(i=7i=10)

{

score=70;

scores[3]++;

}

else

if(i=11i=15)

{

score=60;

scores[4]++;

}

else

{

score=0;

scores[5]++;

}

printf("第%d次得分是:%d\n",j,score);

scores[7]+=score;

j++;

printf("是否继续(y?n)\n");

fflush(stdin);//请输入缓冲区

control=getchar();

while(control!='y'control!='y'control!='n'control!='n')

{

printf("无效字符!只能按y或y,n或n是否继续(y?n)\n");

fflush(stdin);

control=getchar();

printf("%c",control);

}

}

system("cls");//清屏

printf("+++++++++++++++-----------------以下是得分情况:---------------*************\n");

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

{

printf("+++++++++++++++------------------得%d分%d次:------------------*************\n",10*(10-i),scores[i]);

}

printf("+++++++++++++++------------------得%d分%d次:------------------*************\n",

0,scores[5]);

}

(责任编辑:IT教学网)

更多

推荐linux服务器文章