猜数字游戏c语言知识点
2024-12-21 00:14:23
0

一、c语言:猜数字游戏代码

加了得分榜,没写排序,没时间了。自己加一下就OK

#include

#include

#include

#include//以上的是要用到的头文件

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(score>0)

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(o<0)

o=0;

printf("\n请猜这个数是多少(在<%d>到<%d>):",o,(k/5+num)%k);

fflush(stdin);

scanf("%d",&search);

if(num>search)

printf("\n小了\n");

if(num

printf("\n大了\n");

if(num==search)

{

printf("\n恭喜您了!你在第%d次猜对了\n",i);

score+=10;

printf("是否继续:\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("是否继续:\n");

fflush(stdin);

ans=getchar();

if(ans=='y'||ans=='Y')

{

i=1;

letsgo();

}

}

}

}

满意请采纳。

二、c语言题 猜数字游戏

#include

#include

#include

#include

#include

void c_input(char*str)

{

int i,j;

input:for(i=0;i<4;i++)

{

str[i]=getch();

putchar(str[i]);

}

putchar('\n');

for(i=0;i<4;i++)

{

if(str[i]<'0'||str[i]>'9')

{

printf("无效输入,请重新输入:");

goto input;

}

for(j=0;j

{

if(str[i]==str[j])

{

printf("无效输入,请重新输入:");

goto input;

}

}

}

}

void c_game(const char*temp)

{

int i,j,ci;

char in[4];

char out[5]="0A0B";

for(ci=0;ci<8;ci++)

{

printf("第%d次输入:",ci+1);

c_input(in);

for(i=0;i<4;i++)

{

if(in[i]==temp[i])

{

out[0]++;

}

else

{

for(j=0;j<4;j++)

{

if(in[i]==temp[j])

{

out[2]++;

}

}

}

}

printf("%s\n",out);

if(strcmp(out,"4A0B")==0)

{

printf("游戏成功,按下任意键返回主菜单。。");

getch();

return;

}

out[0]='0';

out[2]='0';

}

printf("游戏失败,按下任意键返回主菜单。。");

getch();

}

void c_rand()

{

int i,j;

char data[]="0123456789";

char temp[4];

system("cls");

printf("**随机模式**\n\n");

for(i=0;i<4;i++)

{

j=rand()%(10-i);

temp[i]=data[j];

data[j]=data[10-i-1];

}

c_game(temp);

}

void c_printf()

{

char temp[4];

system("cls");

printf("**用户输入模式**\n\n");

printf("请输入测试数据:");

c_input(temp);

system("cls");

printf("**用户输入模式**\n\n");

c_game(temp);

}

void main()

{

srand(time(NULL));

while(1)

{

system("cls");

printf("(1)随机产生数据\n");

printf("(2)用户输入数据\n");

printf("(3)退出游戏\n");

printf("choice:");

switch(getch())

{

case'1':c_rand();break;

case'2':c_printf();break;

case'3':exit(1);

}

}

}

在VC6下编译通过,但因为没有用C++特征,也可在其它C的编译器上试试

三、c语言猜数字游戏编程思路

分析:

先产生一个随机数N。

然后输入数I,如果A大于N,则提示大于信息。

如果I小于N,则提示小于信息。

直到I==N,则输出成功信息。

这是我用C语言写的。

环境:

WIN-C

,TORBO

C,如果是C++环境把倒数第二排getch();删掉!

已经调试成功:

main()

{

int

i=0,n;

srand(time(0));

n=rand()%100+1;

while(i!=n)

{printf("please

input

a

number:\n");

scanf("%d",&i);

if(i>n)printf("this

number

is

too

big!\n");

if(i

number

is

too

smaller!\n");

}

if(i==n)

printf("PASS!%3d",n);

getch();

}

提示:

srand(time(0));

n=rand()%100+1;

是用来生成一个1~100以内的随机数,如果你改,把100改成50或者200。如(n=rand()%50+1;

一、c语言:猜数字游戏代码

加了得分榜,没写排序,没时间了。自己加一下就OK

#include

#include

#include

#include//以上的是要用到的头文件

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(score>0)

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(o<0)

o=0;

printf("\n请猜这个数是多少(在<%d>到<%d>):",o,(k/5+num)%k);

fflush(stdin);

scanf("%d",&search);

if(num>search)

printf("\n小了\n");

if(num

printf("\n大了\n");

if(num==search)

{

printf("\n恭喜您了!你在第%d次猜对了\n",i);

score+=10;

printf("是否继续:\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("是否继续:\n");

fflush(stdin);

ans=getchar();

if(ans=='y'||ans=='Y')

{

i=1;

letsgo();

}

}

}

}

满意请采纳。

二、c语言题 猜数字游戏

#include

#include

#include

#include

#include

void c_input(char*str)

{

int i,j;

input:for(i=0;i<4;i++)

{

str[i]=getch();

putchar(str[i]);

}

putchar('\n');

for(i=0;i<4;i++)

{

if(str[i]<'0'||str[i]>'9')

{

printf("无效输入,请重新输入:");

goto input;

}

for(j=0;j

{

if(str[i]==str[j])

{

printf("无效输入,请重新输入:");

goto input;

}

}

}

}

void c_game(const char*temp)

{

int i,j,ci;

char in[4];

char out[5]="0A0B";

for(ci=0;ci<8;ci++)

{

printf("第%d次输入:",ci+1);

c_input(in);

for(i=0;i<4;i++)

{

if(in[i]==temp[i])

{

out[0]++;

}

else

{

for(j=0;j<4;j++)

{

if(in[i]==temp[j])

{

out[2]++;

}

}

}

}

printf("%s\n",out);

if(strcmp(out,"4A0B")==0)

{

printf("游戏成功,按下任意键返回主菜单。。");

getch();

return;

}

out[0]='0';

out[2]='0';

}

printf("游戏失败,按下任意键返回主菜单。。");

getch();

}

void c_rand()

{

int i,j;

char data[]="0123456789";

char temp[4];

system("cls");

printf("**随机模式**\n\n");

for(i=0;i<4;i++)

{

j=rand()%(10-i);

temp[i]=data[j];

data[j]=data[10-i-1];

}

c_game(temp);

}

void c_printf()

{

char temp[4];

system("cls");

printf("**用户输入模式**\n\n");

printf("请输入测试数据:");

c_input(temp);

system("cls");

printf("**用户输入模式**\n\n");

c_game(temp);

}

void main()

{

srand(time(NULL));

while(1)

{

system("cls");

printf("(1)随机产生数据\n");

printf("(2)用户输入数据\n");

printf("(3)退出游戏\n");

printf("choice:");

switch(getch())

{

case'1':c_rand();break;

case'2':c_printf();break;

case'3':exit(1);

}

}

}

在VC6下编译通过,但因为没有用C++特征,也可在其它C的编译器上试试

三、c语言猜数字游戏编程思路

分析:

先产生一个随机数N。

然后输入数I,如果A大于N,则提示大于信息。

如果I小于N,则提示小于信息。

直到I==N,则输出成功信息。

这是我用C语言写的。

环境:

WIN-C

,TORBO

C,如果是C++环境把倒数第二排getch();删掉!

已经调试成功:

main()

{

int

i=0,n;

srand(time(0));

n=rand()%100+1;

while(i!=n)

{printf("please

input

a

number:\n");

scanf("%d",&i);

猜数字游戏c语言知识点

if(i>n)printf("this

number

is

too

big!\n");

if(i

number

is

too

smaller!\n");

}

if(i==n)

printf("PASS!%3d",n);

getch();

}

提示:

srand(time(0));

n=rand()%100+1;

是用来生成一个1~100以内的随机数,如果你改,把100改成50或者200。如(n=rand()%50+1;

相关内容

热门资讯

十八禁游戏排行榜 一、十八禁游戏制作公司ILLUSIONILLUSION(イリュージョン)是日本株式会社Eye One...
steam手柄游戏排行榜 一、steam十大必玩手柄游戏列表:1、《真人快打11》《真人快打11》(Mortal Kombat...
h iphone游戏排行榜 各位老铁们好,相信很多人对h iphone游戏排行榜都不是特别的了解,因此呢,今天就来为大家分享下关...
日本好玩h游戏排行榜 一、日本安卓h性游戏下载.很无语有这么难谁告知!!!您好:成人色情游戏是国家明令禁止的游戏,正规的应...
hgame游戏排行榜 大家好,hgame游戏排行榜相信很多的网友都不是很明白,包括《怪异恐剧院》:令人惊艳的HGame,相...
steam游戏排行榜怎么查 一、steam游戏排行榜在哪里看steam游戏排行榜通过官方网站点击进入Steam官网查看。Stea...
美国app游戏排行榜 一、手游排行榜2023前十名手游排行榜2023前十名:《蛋仔派对》《桃源深处有人家》《泰拉瑞亚》《弹...
td游戏排行榜 一、2023好玩的td游戏好玩的td手游2023年,随着技术的不断发展,各种趣味性质的TD游戏也相继...
最新消消乐类的游戏排行榜 一、消消乐游戏排行榜消消乐游戏排行榜如下:《开心消消乐》、《宾果消消消》、《海滨消消乐》、《旋转消消...
变态版游戏盒子排行榜下载 一、十大变态游戏盒子排行榜今天小编要为大家带来的是十大变态游戏盒子排行榜,都是全网高人气的bt手游平...