em có một bài tập đoán số là máy tính chọn ra số ngẫu nhiên có 4 chữ số, các chữ số không lặp lại. Người dùng nhập vào một số có 4 chữ số để đoán, các chữ số không lặp lại nhau. In ra màn hình dạng xAyB nếu Nếu một chữ số của số được đoán ở cùng vị trí và có cùng giá trị với số Ban đầu, hãy đánh dấu 1A.Nếu một chữ số của số đoán sai vị trí nhưng có cùng giá trị với số Ban đầu, hãy đánh dấu 1B.
Em đã giải quyết được việc nhập số và tách số ra để so sánh, nhưng chưa nghĩ ra cách để so sánh. Mọi người có thể gợi ý em phương pháp được không ạ. Em mới học c++ 2 tuần. Em cảm ơn.
#include<iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int dNum,a1, a2, a3, a4,guess,b1,b2,b3,b4,count=0,count2=0;
srand((unsigned)time(NULL));
do {
dNum = 1000 + rand() % (9000);
a1 = dNum / 1000;
a2 = (dNum / 100) % 10;
a3 = (dNum / 10) % 10;
a4 = dNum % 10;
} while (a1 == a2 || a1 == a3 || a1 == a4 || a2 == a3 || a2 == a4 || a3 == a4);
cout << dNum << "b\n";
cout << a1 << "," << a2 << "," << a3 << "," << a4;
do
{
cout << "please enter number";
cin >> guess;
b1 = guess / 1000;
b2 = (guess / 100) % 10;
b3 = (guess / 10) % 10;
b4 = guess % 10;
if (b1 == b2 || b1 == b3 || b1 == b4 || b2 == b3 || b2 == b4 || b3 == b4)
cout << "try input";
if (b1 = a1) count = count++;
if (b2 = a2) count = count++;
if (b3 = a3) count = count++;
if (b4 = a4) count = count++;
cout << count;
if (count = 4) { cout << "you win"; }
} while (guess < 1000 || guess>9999 || b1 == b2 || b1 == b3 || b1 == b4 || b2 == b3 || b2 == b4 || b3 == b4);
return 0;
}