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

猜数字游戏c语言编程一到五,第1张

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

#include <stdioh>

#include <stdlibh>

#include <timeh>

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;

}

int password,a[4],b[4],flag=1,count1,count2,i,j,count3;

password=rand()%1000; //随机是不是这样写。。我忘了,就是随机个四位数

a[0]=password/1000;

a[1]=password%1000/100;

a[2]=password%100/10;

a[3]=password%10;

while(flag)

{

scanf("%d",&temp);

b[0]=password/1000;

b[1]=password%1000/100;

b[2]=password%100/10;

b[3]=password%10;

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

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

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

{ count1++; i++;}

printf(" %d ",count1);

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

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

count2++;

printf(" %d ",count2);

if(count2==4)

flag=0;

count3++;

}

printf("\n%d\n",count3);

// 猜数字cpp : Defines the entry point for the console application

//

#include <stdafxh>

#include <stdlibh>

#include <stdioh>

#include <timeh>

//随机生成4位数,要求没有重复数字

void ProduceRandomNumber(int data[4])

{

int z;

/随机选取1-9999的数,放弃1-999的数,选择1000-9999的数/

do

{

srand( (unsigned)time( NULL ) );

z=(rand()%100)(rand()%100);/随机选数/

data[3]=z%10;/把随即数分成4个/

data[2]=z/10%10;

data[1]=z/100%10;

data[0]=z/1000%10;

}while(z<1000||data[0]==data[1]||data[0]==data[2]||data[0]==data[3]||data[1]==data[2]||data[1]==data[3]||data

[2]==data[3]||data[0]==0);/判断每一位数是否相同,如果是则重新输出/

return ;

}

void Indata(int number,int data[4])

{

data[0]=number/1000%10;

data[1]=number/100%10;

data[2]=number/10%10;

data[3]=number%10;

}

int PosRight(int question[4],int answer[4])

{

int i,count=0;

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

{

if(question[i]==answer[i])

{

count++;

}

}

return count;

}

int NumRight(int question[4],int answer[4])

{

int i,j,count=0;

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

{

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

{

if((question[i]==answer[j])&&(i!=j))

{

count++;

}

}

}

return count;

}

int main(int argc, char argv[])

{

int answer,count=0,input[4],output[4],m=0,n=0,choice;

ProduceRandomNumber(input);

printf(" 欢迎来玩猜数字游戏!\n 游戏开始啦!!!\n");

do

{

count++;

scanf("%d",&answer);

Indata(answer,output);

m=PosRight(input,output);

n=NumRight(input,output);

if(m==4)

{

printf("你真棒!!!\n这个数字就是%d%d%d%d\n你一共猜了%d次了!\n",input[0],input[1],input[2],input[3],count);

break;

}

else

{

printf("不好意思你错了哦!! 提示: %dA%dB\n",m,n);

}

if(count==8)

{

printf("你已经猜了八次了!还要继续吗?(1:yes/0:false)\n");

scanf("%d",&choice);

if(choice==1)

printf("继续吧!\n");

else

{printf("结束游戏!\n");

break;}

}

else if(count==15)

{

printf("你已经猜了15 次了,可能方法不对!下次继续吧!!!\n");

break;

}

}while(1);

return 0;

}

#include<stdioh>

#include<stdlibh>

#include<timeh>

int main()

{

 int n,m,i = 0;

 srand(time(NULL));

 n = rand()%100+1;

 do

 {

  printf("输入所猜数字:");

  scanf("%d",&m);

  i++;

  if( m>n )

   printf("猜错了!太大了!\n");

  else if( m < n)

   printf("猜错了!太小了!\n"); 

 }while(m != n);

 printf("答对了!\n");

 printf("共猜测了%d次。\n",i);

 if(i <= 5 )

  printf("你太聪明了,这么快就猜出来了。\n\n");

 else if(i > 5)

  printf("你还需改进方法,以便更快猜出来!\n\n");

 

 return 0; 

}

#include<stdioh>

#include<timeh>

#include<mathh>

int main()

{

int i,a,n;

srand((int)time(NULL));

n=rand()%100+1;

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

{

printf("请输入一个介于1到100的整数:");

scanf("%d",&a);

if(a<n)

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

if(a>n)

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

if(a==n)

{

printf("猜对了!\n");

break;

}

}

return 0;

}

#include<stdioh>

#include<stdlibh>

#include<mathh>

#include<timeh>

void main()/主函数/

{

int a,b,times=0,i,j,guess=0,answer[5],g[5];

for(i=0;i<5;i++)/随即产生5个数/

{

srand((unsigned int)time(NULL));/以当前时间为种子/

answer[i]=rand()%9+1;/保证为1-9的数,rand产生随即0-65535的数,对9取余为0-8,都加1就是1-9了/

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

while(answer[i]==answer[j])/检查有没有重复的数据,有就重新生成/

{

answer[i]=rand()%9+1;

j=-1;/新生成的数要重新检查,此步后马上执行j++/

}

}

printf("随即的5个数是:");

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

printf("%d",answer[i]);/输出结果到屏幕,便于测试/

printf("\n");

printf("请输入猜测数字:\n%");

a=0;

while(a!=5)/a记录位置对并且数也对的,如果5个都对就是猜对了/

{

a=0;

b=0;/b记录数是有的,但位置不对的个数/

times++;

printf("第 %d 次猜测:\t",times);

scanf("%d",&guess);

while(guess<12345||guess>99999)/如果猜的数超过这个范围就是瞎猜的,肯定不对,再来一次/

{

printf("你输入了一个非常规数据,请重新输入:\t");

scanf("%d",&guess);

}

for(i=4;i>-1;i--)/把玩家猜的5个数放到数组中,便于检查对错/

{

g[i]=guess%10;

guess=(guess-g[i])/10;

}

for(i=0;i<5;i++)/检查数据对错/

{

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

{

if(g[i]==answer[j])/如果猜得的数与结果的某个数一样就把b加1/

{

b++;

if(i==j)/如果位置也对,那就是a加1了,对应的b已经加过,应该减1/

{

a++;

b--;

}

}

}

}

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

if(a==5)

printf("\t答案正确\n"); /如果a=5就是猜对了/

}

}

以上就是关于猜数字游戏c语言编程一到五全部的内容,包括:猜数字游戏c语言编程一到五、C语言编程 人机猜数字、用C语言编写猜数字(喜欢挑战的人可以来看看哦)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9268108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存