猜数字游戏编程c语言限制次数(猜数字游戏c语言编程代码)

http://www.itjxue.com  2023-03-04 00:57  来源:未知  点击次数: 

C++猜数字限制输入次数

定义一个计数变量

int n=1;

放在int i,data,answer=2415;这句后面

在do循环里面加一句

n++;

把while(data!=answer)

改为while(data!=answer n4) 就可以了

求、 各位 哥哥姐姐;小弟在此 跪求 一 用C语言编写的文曲星猜数字游戏代码。

#include?stdio.h

#includestdlib.h

#includemath.h

#include?time.h

void?MakeDigit(int?a[],int?n);

int?InputGuess(int?b[],int?n,int?number);

int?IsRightPosition(int?a[],int?b[],int?n);

int?IsRightDigit(int?a[],int?b[]);

main()

{

int?number;??//储存用户输入的整数

int?level=1;??//用户最多想猜多少次

int?count=1;??//记录用户已经猜的次数

int?rightPosition;??//用户输入的数字中正确位置的数量

int?rightDigit;??//用户输入的数字中正确且在不同位置的数字的数量

int?a[10]={0};??//储存系统随机生成的四位数字

int?b[4]={0};??//储存拆分后的用户输入的四位数字

int?i;

MakeDigit(a,4);

//提示用户输入最多能够猜多少次(保证在0-15次之间)

do{

printf("How?many?times?do?you?want?to?guess:");

//增强程序的健壮性

while(scanf("?%d",level)!=1)

{

fflush(stdin);

printf("Input?error!\n");

}

//将猜的次数限制在0-15次之间

if(level0level=15)

break;

if(level=0)

printf("Input?error!\n");

else

printf("too?many?times!?Please?reput.\n");

}while(level=0||level15);

//用循环实现多次猜数

do{

printf("NO.%d?of?%d?times:",count,level);

scanf("?%d",number);

//增强程序的健壮性

if(InputGuess(b,4,number)==-1)

{

printf("Input?wrong!?\n");

continue;

}

rightPosition=IsRightPosition(a,b,4);

rightDigit=IsRightDigit(a,b)-rightPosition;

printf("%dA%dB\n",rightPosition,rightDigit);

count++;

}while(rightPosition==4||count=level);

//输出提示和结果

if(rightPosition==4)

printf("Congratulations,you?guess?the?right?number?!\n");

else

printf("?Sorry,you?haven't?guess?the?right?number.?\n");

printf("Correct?answer?is:?%d%d%d%d\n",a[0],a[1],a[2],a[3]);

system("pause");

}

//函数功能:将计算机随机生成的各位相异的四个四位数字存储到数组a中

void?MakeDigit(int?a[],int?n)

{

int?i,j,temp;

srand(time(NULL));

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

a[i]=i;

do

{

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

{

j=rand()%10;

temp=a[j];

a[j]=a[i];

a[i]=temp;

}

}while(a[0]==0);

}

//函数功能:将用户猜的四位数存入数组b中,如果用户输入非法数据则返回-1

int?InputGuess(int?b[],int?n,int?number)

{

if(number1000||number10000)

return?-1;

else

{

int?i;

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

{

b[3-i]=number%10;

number=number/10;

}

return?1;

}

}

//函数功能:输出数组a和数组b相同位置的元素相等的个数

int?IsRightPosition(int?a[],int?b[],int?n)

{

int?i,j;

int?count=0;

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

{

j=i;

if(a[i]==b[j])

count++;

}

return?count;

}

//函数功能:输出数组a与数组b中相同元素的总数

int?IsRightDigit(int?a[],int?b[])

{

int?i,j;

int?count=0;

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

{

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

{

if(a[i]==b[j])

count++;

}

}?

return?count;

}

猜数游戏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

(责任编辑:IT教学网)

更多

推荐CorelDraw教程文章