这段程序那里写错了?

来源:百度知道 编辑:UC知道 时间:2024/05/18 07:16:41
我要写一段游戏程序,是逻辑推数,先产生一个随机数列a[4]然后输入一个数列b[4]若a[4] 中的数与b[4] 相同,且位置相同,则输出A,若仅数相同,则输出B,但下面程序似乎不能完成这个任务。那里错了,则么修改?谢谢。
#include<stdio.h>
#include<math.h>
fa(int *t,int *r,int *ti,int a[])
{ int b[4],i,j;
*ti=(*ti)+1;
printf("\nplease guss\n");
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(a[i]==b[j]&&i==j) *t=(*t)+1;
else if(a[i]==b[j]&&i!=j) *r=(*r)+1;
}
void main()
{ int a[4]={0},b[4],i,j,true,right,time=0,*t,*r,*ti,*p=NULL;
while(a[0]==a[1]||a[0]==a[2]||a[0]==a[3]||a[1]==a[2]||a[1]==a[3]||a[2]==a

[3])
for(i=0;i<4;i++)
a[i]=rand(p)%10;
loop:
true=(right=0);
t=&true;
r=&right;
ti=&time;
fa(t,r,ti,a);
if(true==4&&time<=8) printf("\nyou are right\n");
else if(true!=4;time<8){ printf("\n%dA,%dB",true,right); goto loop; }

for(i=0;i<4;i++)
scanf("%d",&a[i]);
这句的&a[i]应该是&b[i]吧?

else if(true!=4;time<8){ printf("\n%dA,%dB",true,right); goto loop; }
应该是
else if(true!=4&&time<8){ printf("\n%dA,%dB",true,right); goto loop; }

继续答:

for(i=0;i<4;i++)
scanf("%d",&a[i]);
改成
scanf("%d%d%d%d",&b[0],&b[1],&b[2],&b[3]);
就一行输入了b

if(true==4&&time<=8) printf("\nyou are right\n");
改成
if(true==4&&time<=8) {printf("\nyou are right\n");
getch();
exit(0);}
答对就退出

好难哦,这是什么语言

看不懂