#include
#include
#include
#include
int main(int argc, const char * argv[]) {
//保存原始数据
int originalArray[4] = {};
//保存猜测数据
int guessArray[4] = {};
//计算数字正确且位置正确的个数
int countA = 0;
//计算数字正确但位置错误的个数
int countB = 0;
srand((unsigned int)time(NULL));
for(int i = 0;i < 4;i++){
bool isExist = false;
int temp = 0;
while(1){
//产生一个随机数
temp = rand() % 10;
//判断是否已经存在
for(int j = 0;j
if(originalArray[j] == temp){
//重复了,停止比较,继续产生新的
isExist = true;
break;
}
}
//1.重复了,break
//2.遍历数组没有重复的
if(isExist == false){
break;
}
}
//边产生 边排序 插入排序
//寻找这个数对应的位置
int j = 0;
for(;j
//j对应的数字和产生的数字进行比较
if(temp < originalArray[j]){
//j后面的内容往后移动 腾出空间
for(int k = i;k > j;k--){
originalArray[k] = originalArray[k-1];
}
break;
}
}
//写入到数组中
originalArray[j] = temp;
}
//开始游戏
while (1) {
//输入猜测的数据
printf("请输入猜测的数字:\n");
for (int i = 0; i < 4; i++) {
scanf("%d",&guessArray[i]);
}
//将产生的数与输入的数进行比较
for (int i = 0; i < 4; i++) { //控制原始数字
for (int j = 0; j < 4; j++) { //控制输入
if (originalArray[i] == guessArray[j]) {
if (i == j) {
//数字相同且位置相同
countA++;
}else{
//数字相同但位置不同
countB++;
}
}
}
}
if (countA == 4) {
//猜对了!
printf("Congratulations!!!\n");
break;
}else{
printf("%dA%dB\n",countA,countB);
//清零
countA = 0;
countB = 0;
}
}
// //输出产生的数
// for(int i =0;i <4;i++){
// printf("%d",originalArray[i]);
// }
// printf("\n");
return 0;
}