作者: admin 发布时间: 2024-06-11 03:52
就是说自由度高的嘛
是吗?那就去玩金庸群侠传2,这个随机事件较多,但不好玩。
或者去玩玩太阁立志传吧,还有上古卷轴4,这个自由度高
输入scanf %c的时候把回车符读了。
在我光标那行加一个char buf[20];fgets(buf,20,stdin);吃一行,就行了。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int p;
int a[10],c[10];
char b[10];
int i,j,x,y,k;
int position=0,number=0;
for(j=0; ; j++)
{
srand(time(0));
a[0]=rand()%10;
if(a[0]==0) continue;
else break;
}
for(j=0; ; j++)
{
srand(time(0));
a[1]=rand()%10;
if(a[1]==a[0]) continue;
else break;
}
for(j=0; ; j++)
{
srand(time(0));
a[2]=rand()%10;
if(a[2]==a[1] || a[0]==a[2]) continue;
else break;
}
for(j=0; ; j++)
{
srand(time(0));
a[3]=rand()%10;
if(a[3]==a[2] || a[3]==a[1] ||a[3]==a[0]) continue;
else break;
}
system(pause);
for(p=0; p<4; p++)
{
printf(%d,a[p]);
}
printf(\n); //这段是用来输出产生的随机数字,用于测试程序
for(x=1; x<=10; x++)
{
printf(请输入一个各位互不相同的四位数:);
for(i=0; i<4; i++) scanf(%c,&b[i]); //输入四位数
char buf[20];fgets(buf,20,stdin);
for(i=0; i<4; i++)
{
c[i]=b[i]-'0';
}//将字符数组转化为整形数组
for(position=0,j=0; j<4; j++)
{
if(a[j]==c[j]) position++;
}
for(j=0,number=0; j<4; j++)
{
for(k=0; k<4; k++)
{
if(a[j]==c[k]) number++;
}
}
number=number-position;
if(position==4)//判断position是否为4,是则退出
{
printf(恭喜你!答对了!);
break;
}
else if(position<4) //不是则输出,position和number,并将两个数清零
{
printf(%dA%dB,position,number);
}
if(10-x>0)//判断是否还有机会,有则输出剩余机会数
{
printf(错了!您还有%d次机会,10-x);
printf(\n);
}
else if(10-x==0) //判断没有机会了,则输出正确答案
{
printf(很遗憾,本题的正确答案为:);
for(i=0; i<4; i++) printf(%d,a[i]);
}
number=0;//将两个数置零
position=0;
}
}
秦殇,任务很丰富的国产经典ARPG,很多任务都要靠自己的悟性和洞察力去完成,有很多随机性任务,不看攻略我是完不成所有的任务,推荐给你。