题解
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void roll(int a[])
{
int i;
srand(time(NULL));
for (i = 0; i < 4; i++)
{
a[i] = rand() % 10;
if (a[i] == a[i - 1] && i > 0) i--;
if (a[i] == a[i - 2] && i > 1) i--;
if (a[i] == a[i - 3] && i > 2) i--;
}
}
void print(int a[])
{
int i;
printf("the number is :");
for (i = 0; i < 4; i++)
{
printf("%-4d", a[i]);
}
puts("");
}
void game(int a[], int n)
{
int i = 0, j, x;
int q,w,e,r;
int A_count, B_count;
int flag = 1;
do
{
A_count = 0, B_count = 0;
printf("输入猜测的数:");
scanf_s("%d", &x);
i++;
q = x / 1000;
w = x / 100 % 10;
e = x / 10 % 10;
r = x % 10;
if (a[0] == q) A_count++;
if (a[1] == w) A_count++;
if (a[2] == e) A_count++;
if (a[3] == r) A_count++;
for (j = 0; j < 4; j++)
{
if (a[j] == q || a[j] == w || a[j] == e || a[j] == r) B_count++;
}
B_count -= A_count;
if (A_count == 4) flag = 0;
else
{
printf("%dA%dB\n", A_count, B_count);
}
} while (flag && i < n);
if (flag == 0) printf("Congragulation!\n");
else
{
printf("Sorry!You havenot guess the number!\n");
print(a);
}
}
int main()
{
int a[4];
int count;
roll(a);
printf("输入猜测的次数:");
scanf_s("%d", &count);
game(a, count);
return 0;
}
参考答案