谢谢各位了!
现在可以运行了,可是我们的要求是当用户10次仍然不能猜出正确的原始数字和顺序时,系统提示玩家失败,并给玩家显示原始数字和顺序。
我觉得只要在外面加一条FOR就行了。可是猜错十次以后还是老样子。难道我做的循环不对吗?
怎样才能在最后把开始随机生成的4个数字显示出来呢??
我刚才照windflush说的做了,把for放进while去。
可是应该放在哪儿呢?
怎样才能不让黄色的部分一直循环呢?
哥哥们,帮帮忙吧。我也知道编的乱,可是这是作业,就要提交了,急!!死!!!
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define SIZE 4
main()
{ int enter=1,stop,a[SIZE],b[SIZE],guessnum,i,j,counter,countera,counterb,counter0,extra;
int t;
for(t=0;t<10;t++)
{ //int enter=1,stop,a[SIZE],b[SIZE],guessnum,i,j,counter,countera,counterb,counter0,extra;
char ch;
srand(time(NULL));
while(enter==1)
{ stop=2;
while(stop==2)
{ extra=1;
for(i=0;i<=SIZE-1;i++)
a[i]=rand()%10;
for(i=0;i<=SIZE-1;i++)
{ for(j=i+1;j<=SIZE-1;j++)
{ if(a[i]==a[j]) extra=2; }
}
if(a[0]!=0&&extra==1) {stop=1;printf("%d%d%d%d",a[0],a[1],a[2],a[3]);}
}
counter=1;
while(counter<=6)
{ printf("Please guess the number:\n");
scanf("%d",&guessnum);
for(i=0;i<=SIZE-1;i++)
b[i]=guessnum/(int)pow(10,SIZE-1-i)%10;
countera=0;
for(i=0;i<=SIZE-1;i++)
{ if(a[i]==b[i]) countera++;}
counter0=0;
for(i=0;i<=SIZE-1;i++)
{ for(j=0;j<=SIZE-1;j++)
{ if(a[i]==b[j]) counter0++;}
}
counterb=(counter0-countera);
if(countera==4)
{ printf("Wonderful!You guessed the number.Then,please input your choice,'1' represents going on,'2' represents breaking\n");
counter=7;
scanf("%d",&enter);
}
else{ printf("%dA%dB\n",countera,counterb);
counter++;
}
}
}
while((ch=getchar())!='s'&&ch!='S');
};
printf("你失败了,答案是:%d%d%d%d\n",a[0],a[1],a[2],a[3]);
return 0;
}
[此贴子已经被作者于2007-7-1 20:52:41编辑过]