题目
我开始是想在 judgment_Number 函数里想用 if 语句来求 A 和 B 的值,但是后来发现按照我的思路来写要用到大量的if语句,而且可能会遗漏某种结果,我就迷茫了
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <time.h>
#define N 4
void generate_Random_Number(int*);
void get_Number(int*);
bool judge_Equality(int*);
void judgment_Number(int*, int*, int);
int main(void)
{
int x[N], y[N]; //数组x用来存放生成的随机数的四位数字,数组y用来存放用户输入的四位数字
generate_Random_Number(x); //生成随机数
get_Number(y); //处理用户输入
if (x[0] == y[0] && x[1] == y[1] && x[2] == y[2] && x[3] == y[3]) //判断用户输入数和随机数是否相等
{
printf("4A0B\n您猜对了!\n");
return 0;
}
else
{
judgment_Number(x, y, N); //怎么写?
}
}
void generate_Random_Number(int* p)
{
srand((unsigned)time(NULL));
while (1)
{
p[0] = rand() % 9 + 1;
p[1] = rand() % 10;
p[2] = rand() % 10;
p[3] = rand() % 10;
if (judge_Equality(p))
{
printf("四位不重复的随机数已生成!\n");
break;
}
}
}
bool judge_Equality(int* a) //判断四位数是否有重复
{
if (a[0] != a[1] && a[0] != a[2] && a[0] != a[3] && a[1] != a[2]
&& a[1] != a[3] && a[2] != a[3])
{
return true;
}
return false;
}
void get_Number(int* p) //处理用户输入
{
int a;
printf("请输入你猜想的那个四位不重复的随机数:\n");
while (scanf("%d", &a) != EOF)
{
if (a >= 1000 && a <= 9999) //判断用户输入的是否为4位数
{
p[0] = a / 1000;
p[1] = a / 100 % 10;
p[2] = a / 10 % 10;
p[3] = a % 10;
if (judge_Equality(p))//判断用户输入的这个4位数是否有重复
{
break;
}
}
printf("输入错误\n请重新输入:\n");
}
return;
}
void judgment_Number(int* p, int* q, int n)
{
//这个函数该怎么写
}
求个思路