#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
int main(int argc, const char * argv[]) {
/*
4位数 从小到大 没有重复 1-9
A 表示存在而且位置也对的个数
B 表示存在但是位置不对
1 2 3 4
1 4 6 8
1A1B
*/
int array[4] = {};
bool isExist = false;
//设置随机数的种子
srand((unsigned int)time(NULL));
for (int i = 0; i < 4; i++) {
int temp = rand() % 9 + 1;//1-9
//判断是否存在
for (int j = 0; j < i; j++) {
if (array[j] == temp) {
//已经存在了
//把这次机会还给我
i--;
isExist = true;
}
}
//判断是否应该保存这个数字
if (isExist == false){
//保存
array[i] = temp;
} else{
//存在了
isExist = false;
}
}
//冒泡排序
int temp;
for (int i = 0; i < 4; i++){
for (int j = 4-1-1; j >= i; j--) {
if (array[j] > array[j+1]) {
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
// 6 7 9
// for (int i = 0; i < 4; i++){
// printf("%d ", array[i]);
// }
printf("\n");
//接收用户的输入
int totalWrongTime = 10;
int wrongTime = 0;
int inputedArray[4] = {};
int countA = 0;
int countB = 0;
do {
printf("请输入数字:");
for (int i = 0; i < 4; i++) {
scanf("%d", &inputedArray[i]);
}
//判断用户的输入结果
for (int i = 0; i < 4; i++){
for (int j = 0; j < 4; j++) {
if (array[i] == inputedArray[j]) {
//数字存在了
//判断位置是否相同
if (i == j){
//位置也相同
countA ++;
} else{
//位置不同
countB ++;
}
}
}
}
//对结果进行处理
if (countA == 4){
printf("Congratulation to you !\n");
break;
} else{
printf("%dA%dB\n", countA, countB);
wrongTime ++;
//对结果清零
countA = 0;
countB = 0;
}
} while (wrongTime < totalWrongTime);
return 0;
}
猜数字
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 程序介绍:猜数字小游戏,计算机随机生成一个1-100的数字,然后用户猜数字的值,系统提示用户:“数字太高了/数字太...
- 做过亚马逊运营的朋友都知道亚马逊采用的是A9搜索引擎,这是一套非常人工智能化的搜索引擎,它靠一套算法决定了产品的关...