Как обновлять переменную в цикле
Как можно обновить переменную в цикле в зависимости от введенного значения? Cуть задания угадать число, которое загадал компьютер, но при этом угадать еще сколько цифр мы угадали из заданного числа и стоят ли они на своих позициях. Например, загаданное число 123, вводим 203, программа говорит что угадано 2 числа(2 и 3), на своих позициях 1 число(3)
int main() {
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int randomNum, ourNum, temp1, temp2, numDigits = 1;
int* massPosition;
int* ourMassPosition;
cout << "Компьютер загадал число, необходимо его отгадать" << endl;
randomNum = 123;
printf("Комп загадал %d\n", randomNum);
cout << "Ваш вариант : ";
cin >> ourNum;
temp1 = randomNum; // копия числа компьютера
temp2 = ourNum; // копия нашего числа
if (randomNum == ourNum) {
cout << "Число отгадано!" << endl;
return 0;
}
// Cчитаем разрядность числа компьютера
while (temp1 / 10 != 0) {
numDigits++;
temp1 /= 10;
}
massPosition = new int[numDigits];
ourMassPosition = new int[numDigits];
temp1 = randomNum;
while (randomNum != ourNum) {
cout << "Попробуйте еще раз: " << endl;
cin >> ourNum;
temp2 = ourNum;
while (temp1 != 0 && temp2 != 0) {
for (int i = numDigits - 1; i >= 0; i--) {
massPosition[i] = temp1 % 10;
ourMassPosition[i] = temp2 % 10;
temp1 /= 10;
temp2 /= 10;
}
}
int countPosition = 0;
for (int i = 0; i < numDigits; i++) {
if (massPosition[i] == ourMassPosition[i]) {
countPosition++;
}
}
int countNumber = 0;
for (int i = 0; i < numDigits; i++) {
for (int j = 0; j < numDigits - 1; j++) {
if (massPosition[i] == ourMassPosition[j]) {
countNumber++;
i++;
}
}
}
cout << "Угадано: " << countNumber << " На своих местах : " << countPosition << endl;
if (randomNum == ourNum) {
cout << "Число угадано!" << endl;
}
}
delete massPosition;
delete ourMassPosition;