/*系统会随机给出四位整数,
您有十次机会来猜对此数字,
每次猜测后, 系统将会提示您,
其中位置和数字均正确将以A表示,
数字正确而位置错误将以B表示, 希望您能顺利过关*/
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main() {
srand((unsigned)time(NULL));
int number =rand()%10000;
int t = number;
cout << " 系统已生成数字,请您输入您的猜想: " << endl;
int num;
cout << " 第1次输入:" << endl;
cin >> num;
int counter = 0;
int a[4];
int b[4];
b[0] = t % 10;//个位
b[1] = t / 10 % 10;//十位
b[2] = t / 100 % 10;//百位
b[3] = t / 1000;//千位
while ((num != number)&&counter!=10) {
counter++;
int d = 0;
int e = 0;
a[0] = num % 10;//个位
a[1] = num / 10 % 10;//十位
a[2] = num / 100 % 10;//百位
a[3] = num / 1000;//千位
for (int i = 0; i < 4; ++i) {
if (a[i] == b[i])
d++;
}
if (a[0] != b[0])
if ((a[0] == b[1]) || (a[0] == b[2]) || (a[0] == b[3]))
e++;
if (a[1] != b[1])
if ((a[1] == b[0]) || (a[1] == b[2]) || (a[1] == b[3]))
e++;
if (a[2] != b[2])
if ((a[2] == b[1]) || (a[2] == b[0]) || (a[2] == b[3]))
e++;
if (a[3] != b[3])
if ((a[3] == b[1]) || (a[3] == b[2]) || (a[3] == b[0]))
e++;
cout << d << "A" << e << "B" << endl;
cout << " 第" << counter + 1 << "次输入:" << endl;
cin >> num;
}
if (num == number) {
cout << "正确结果为 : " << num << endl;
cout << " 您猜对了!!" << endl;
}
system("pause");
}
转载于:https://my.oschina.net/u/3772904/blog/1618242