用c语言分离四位数4586,猜数字游戏(C语言)

猜数字游戏:AI与用户的智力对决
本文介绍了一个猜数字游戏的实现过程。游戏中,AI随机生成一个不重复的四位数,用户有10次机会猜测。每次猜测后,AI会根据数字和位置的匹配情况提供A(位置和数字都对)和B(数字对但位置错)的反馈。当用户在10次内猜出正确数字时获胜。游戏涉及随机数生成、数组操作和条件判断等编程概念。

题目:输入一个随机四位数,你猜这个四位数。

你猜的结果与这个四位数进行比较,如果所在的位和

这个位上的数字都相同,用A表示。如果只是数字相同,

而位置不同,则用B表示。你只有10次机会!如:

随机产生的数字为:4325

你猜的数 提示你

4586-------------1A0B

3524-------------0A4B

.

.

.

直到在10次内产生4A0B,则显示你胜利。

过程分析:

1.首先随机产生四个数(不重复)。如:4325

1)先产生一个随机数放在数组a[0]中。如:a[0]=4

2) 再产生一个与第一个不重复的随机数放在a[1]中。如:a[1]=3

3) 再用与第二步相同的办法产生第三个和第四个数放在a[2],a[3]中,分别不重复。如 a[2]=2,a[3]=5

2.用户输入一个四位数。如:4586

1)判断,并确定这个四位数没有重复。有重复则给出提示信息

2)将这个四位数的每一位拆出来放在数组b[4]中。

千位放在b[0],百位放在b[1],十位b[2],个位b[3].

3)分别比较这两数组中的值及位置是否相同。并给出提示信息。

int Acount,Bcount;

Acount=Bcount=0;

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

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

{

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

if(i==j)   Acount++;

else      Bcount++;

}

#include

#include

#include

#define MAX 4

int a[MAX];

int b[MAX];

int Acount,Bcount;

void splitNum(int nPut)

{

a[0]=nPut/1000;

a[1]=nPut%1000/100;

a[2]=nPut%100/10;

a[3]=nPut%10;

}

void judgeRepeat(int a[MAX])

{

int temp=0;

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

for(int j=i+1;j<4;j++)

{

if(a[i]==a[j]) temp++;

}

if(temp)

printf("提示:你输入的数中有重复!\n");

}

void randNumber()

{

int tem[10]={0};

int a;

b[0]=rand()%9+1;

for(int j=1;j

{

do

{

a=rand()%10;

}while(a==b[j-1]||a==b[j-2]||a==b[j-3]);

b[j]=a;

}

/*

b[0]=rand()%9+1;

b[1]=rand()%10;

b[2]=rand()%10;

b[3]=rand()%10; */

}

void printRandNum()

{

printf("随机产生的数为:");

for(int i=0;i

{

printf("%d",b[i]);

}

printf("\n");

}

void compareNum(int a[MAX],int b[MAX])

{

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

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

{

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

if(i==j) Acount++;

else Bcount++;

}

}

int main(int args,char *agrv[])

{ int nPut;

int count=0;

char cYN;

bool age=true;

bool fail=true;

srand(time(NULL));

randNumber(); /*随机产生的一个四位数*/

while(age&&count<10&&fail)

{

Acount=Bcount=0;

printf("请输入一个不重复的四位数:");

scanf("%d",&nPut);

count++;

splitNum(nPut);

judgeRepeat(a);

compareNum(a,b);

if(Acount==4)

{ age=false;}

printf("%dA%dB\n",Acount,Bcount);

printf("想知道这个数吗(Y/N)? 那样你就输了!还是自己努力吧!\n");

getchar();

cYN=getchar();

if(cYN=='Y'||cYN=='y') fail=false;

}

if(count==10)

{

printf("你输入的次数已经超过了10次!下次再来吧!");

}

else if(!fail)

{

printRandNum();

printf("别灰心再来吧!");

}

else

printf("哇!你好厉害哟,赢了!\n接着来吧!\n");

return 0;

}

内容概要:本文介绍了ER腐蚀速率探头在多个工业领域中的应用及其重要性。ER探头具有强大的环境适应能力,可在高温、高压、低温(如-162℃)及高盐度等恶劣条件下稳定运行,广泛应用于石油天然气、化工炼化、电力等行业。在油气管道中,尤其适用于含硫化氢的酸性环境和海上平台导管架的潮差区,可实时监测腐蚀速率,频率高达每30秒一次,当腐蚀速率超过0.01mm/年时及时预警,便于调整缓蚀剂或阴极保护参数。在化工装置中,探头用于催化裂化反应器、换热器、再沸器和酸碱储罐等关键设备,实现不停工在线监测,降低检修成本并防止泄漏事故。电力行业中,ER探头用于锅炉水冷壁和凝汽器管束的腐蚀监控,结合水质分析优化水处理方案,延长设备寿命。; 适合人群:从事石油天然气、化工、电力等行业设备安全监测、腐蚀防护及相关技术研发的工程技术人员;从事管道运维、材料防护或安全管理的专业人员;; 使用场景及目标:① 实时在线监测关键设备和管道的腐蚀速率,预防穿孔泄漏事故;② 结合工艺参数优化缓蚀剂、杀菌剂使用及水处理方案;③ 在高温、高压、低温等复杂工况下实现稳定可靠的腐蚀评估; 阅读建议:本资料侧重于ER探头的实际应用场景和技术价值,使用者应结合具体工况理解其部署位置与数据解读方法,并可参考河南科捷制造有限公司的技术支持进一步落地实施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值