|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
来到这里看小甲鱼的视频已经有一个月了,真的学到东西挺多的。先在此谢过拉!! 前段时间突然想起小时候玩的一个数字游戏,突发奇想一直想写出来,有很多东西不会都是百度找的,比如开始的srand(time(NULL))
这个小游戏别说大家了,我现在能看出来的就好几个漏洞,奈何不会修补:cry :cry
在此献上,祝大家越走越远哈,
第二个do while语句是copy的,还有就是我也不想一个main写到黑的,可是老提示link2001什么的,没办法只能先写在一起了
勿喷啊,嗯,勿喷
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{ int x,b[4],a[4];
int o,p,truth;
int i,j,n=0,m=0;
int k;
printf("游戏规则:\n");
printf("****************************************\n");
printf("每局游戏有8次机会猜数字\n猜的数字如果其中某个对了并且顺序也对则评A。\n猜的4个数字如果数字对了顺序不对就是B\n");
printf("例如假如答案是3214,猜3548则是1A1B \n相信这个游戏你们学生时代一定玩过的 感谢大家的支持!!!\n");
printf("****************************************\n");
srand(time(NULL));
do
{
a[0]=rand()%10;
}
while(a[0]==0);
for(i = 1;i < 4; i++)
{
do
{
a[i]=rand()%10;
k=0;
for(j = 0; j < i; j++)
{
if(a[i]==a[j])
break;
else
k=1;
}
}while(k!=1);
}
printf("请输入4个不同的数字,类似于4256\n\n");
for(i=0;i<8;i++)
{
printf("第%d次输入",i+1);
scanf("%d",&x);
for(o=3;o>=0;o--)//4321
{b[o]=x%10;x=x/10;}
n=0;
for(p=0;p<4;p++)
{
if(a[p]==b[p])n++;
}
m=0;
{
if(b[0]==a[1]||b[0]==a[2]||b[0]==a[3])m++;
if(b[1]==a[0]||b[1]==a[2]||b[1]==a[3])m++;
if(b[2]==a[0]||b[2]==a[1]||b[2]==a[3])m++;
if(b[3]==a[0]||b[3]==a[1]||b[3]==a[2])m++;
}
if(n==4)
{
printf("牛B,你猜对了");
}
else printf("%dA%dB\n",n,m);
}
truth=a[0]*1000+a[1]*100+a[2]*10+a[3];
printf("游戏失败,答案是:%d\n",truth);
getch();
}
|
|