#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
// create an random integer between 0 and N
int randomizer(const int N)
{
srand((unsigned)time(NULL));//ÀûÓÃϵͳµ±Ç°Ê±¼äÃëÊý×öËæ»úÖÖ×Ó
return rand()%(N+1);
}
int main()
{
int a[4], b[4], flaga[4], flagb[4], i = 0, j, x, y, num;
bool check_ok;
const int N = 9;
//aÊý×é¼Ç¼ËĸöËæ»úÊý,bÊý×é¼Ç¼Óû§ÊäÈëµÄËĸöÊý,flaga±íʾËĸöËæ»úÊýÖÐÄÄЩÒѱ»²Â³ö,flagb±íʾÓû§ËĸöÊäÈëÄÄЩ¶ÔÁË
char error;
printf("ÏÖÔÚ¿ªÊ¼²ÂÊýÓÎÏ·,Çë°´ÌáʾÒÀ´ÎÊäÈëËĸö0~9µÄÕûÊý.Äú¹²ÓÐ10´Î»ú»á.\n");
a[i] = randomizer(N);
do
{
i++;
do
{
a[i] = randomizer(N);
check_ok = true;
for(j = i-1; j>=0; j--)
{
if(a[i] == a[j])
{
check_ok = false;
break;
}
}
}while(check_ok==false);
}while(i!=3);
for(i = 0; i<4; i++)
{
printf("%d ", a[i]);
}
for ( num = 0; num < 10; num ++)
{
x = 0; y = 0;//½á¹ûͳ¼ÆÇåÁã
for (i = 0; i < 4; i++)
{
flaga[i] = 0;//±íʾ¸ÃËæ»úÊýÉÐδ±»²Â³ö
flagb[i] = 0;//±íʾ¸ÃÓû§ÊäÈë²»¶Ô
b[i] = -1;
while( b[i] == -1 )
{
printf("ÇëÊäÈëÄú²Â²âµÄµÚ%d¸öÊý:", i+1);
scanf("%d", &b[i]);
if (b[i] == -1)
{
printf("ÄúÊäÈëµÄ²»ÊÇ×ÔÈ»Êý,ÇëÖØÐÂÊäÈë.\n");
scanf("%s", &error);
}
}
if (a[i]==b[i])
{
x++;//Êý×Ö¶ÔÇÒλÖöԵĸöÊýx
flaga[i] = 1;//µ±Ç°Ëæ»úÊý±»²Â³ö
flagb[i] = 1;//µ±Ç°Óû§µÄÊäÈëÊÇÕýÈ·µÄ
}
}
for (i = 0; i < 4; i++)
{
if (flaga[i] == 1) continue;//Èç¹ûµ±Ç°Ëæ»úÊýÒѾ±»²Â³ö,¾Í±È½ÏÏÂÒ»¸öËæ»úÊý
for (j = 0; j < 4; j++)
{
if ( (flagb[j] == 0) && (a[i] == b[j]) )
{
y++;//Êý×Ö¶Ôµ«Î»Öò»¶ÔµÄ¸öÊýy¼Ó1
flagb[j] = 1;//±íʾµ±Ç°ÊäÈëÊǶԵÄ.
break;
}
}
}
if (x == 4)
{
printf("¹§Ï²Äã,²Â¶ÔÁË!");
break;
}
else
{
printf("±§Ç¸,ÄúÍêÈ«²Â¶ÔµÄÓÐ%d¸öÊý,Êý×Ö¶Ô¶øÎ»Öò»¶ÔµÄÓÐ%d¸öÊý\n", x, y);
if (num == 9)
printf("¶Ô²»Æð,Äúʧ°ÜÁË.");
else
printf("Äú»¹ÓÐ%d´Î»ú»á.\n", 9-num);
}
}
return 0;
}