猜数字1到100游戏编程c语言流程图(猜数字1到100游戏编程c++语言)

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

用C++编程工具:猜数游戏程序产生一个1到100之间的随机整数,并提供给用户7次猜数机会.

#includetime.h

#includestdio.h

#includestdlib.h

int main()

{

srand((unsigned )time(NULL));

int num=rand();//产生一个随即数(实际上是伪随机),如果需要产生很多个的话,可以在外层再加一个循环

num=num%100+1;

int guess;

int count=0;

puts("有一个数,你来猜猜看");

while(scanf("%d",guess))

{

if(guessnum)

{

puts("小了");

count++;

}

else if(guessnum)

{

puts("大了");

count++;

}

else

{

printf("bingo!!您共用了%d次回答正确\n",++count);

count=0;

break;

}

}

}

C语言题目 编程实现数字猜谜游戏!

一个函数用于生成一个随机数

再用一个函数进行三次循环

如果循环中输入的数字猜对了就返回1如果三次循环结束则返回0

主数字判断返回的结果如果是1则表示猜对否则表示猜错

然后询问是否继续进行猜数字游戏

下面是一个简单的代码

#include?stdio.h

#include?time.h

void?clean_input_buf(void)

{

????while(getchar()?!=?'\n');

}

int?make_num(int?num)

{

????srand(num);

????return?1+rand()%20;

}

int?guess_num(void)

{

????int?i=3;

????int?n;

????int?num;

????num=make_num(clock());

????while(i)

????{

????????printf("请输入一个你猜的数字:");

????????scanf("%d",n);

????????if(n?==?num)

????????????return?1;

????????clean_input_buf();

????????--i;

????}

????return?0;

}

int?main(int?argc,char?**argv)

{

????char?c;

????printf("猜数字游戏!\n游戏要猜测的数字为1-20,每个数字可以猜测3次!\n");

????while(1)

????{

????????if(guess_num()?==?1)

????????????printf("恭喜你,你猜中了!\n");

????????else

????????????printf("很遗憾,你猜错了!\n");

redo:

????????printf("还要继续游戏吗?继续输入Y否则输入N!\nY/N:");

????????c=getchar();

????????clean_input_buf();

????????if(c?==?'Y'?||?c?==?'y')

????????????continue;

????????else?if(c?==?'N'?||?c?==?'n')

????????????break;

????????else

????????{

????????????printf("输入错误,请重新输入!\n");

????????????goto?redo;

????????}

????}

????return?0;

}

猜数字游戏c语言编程一到五?

终端编码问题,我用了英文,但功能是完整的,图一乐:

#include?stdio.h

#include?stdlib.h

#include?time.h

int?main()?{

int?key,?input;

srand(time(NULL));

key?=?rand()?%?5?+?1;

printf("Guess?who?am?I??(from?1?to?5,?0?for?exit)\n");

printf("Your?answer:?");

while?(1)?{

scanf("%d%*c",?input);

if?(input?==?0)?{

break;

}?else?if?(input?==?key)?{

printf("Yes!?Congratulations!");

break;

}?else?{

printf("No...?Try?again!\nYour?answer:?");

}

}

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语言,编写一个猜数字游戏

源码如下:

/*?File:?guess.c?*/

#include?stdio.h??/*?standard?input??output?support?*/

#include?stdlib.h?/*?srand()?rand()?*/

#include?time.h???/*?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("\nRIGHT:?%d?bit(s)\n",?count);

if?(count?==?NUMBER_LENGTH)

{

printf("You?win!?The?number?is?%s.\n",?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:\n");

scanf("%s",?input);

display();

initBuffer();

}

/*?主函数,程序主框架?*/

int?main?(int?argc,?const?char?*?argv[])

{

initData();

initBuffer();

general();

while?(1)?guess();

return?0;

}

==============================================

运行结果见附图,希望我的回答能够对你有所帮助。

(责任编辑:IT教学网)

更多