【发布时间】:2020-03-22 14:00:06
【问题描述】:
我正在尝试创建一个比较两个四位数字和 返回两者之间相似数字的数量。例如,生成数字 4311,用户输入 1488, 分数应返回 2(4 和 1)。
如果是 4311 而另一个是 1147, 分数应返回三个(1、1 和 4)。我不知道为什么它没有给我正确的输出,希望你能帮忙。
int getSameDigitScore(int playerGuess, int generatedNum) {
int score = 0;
int i;
int j;
int k;
int generatedNumArray[4];
int playerGuessArray[4];
// turns playerGuess into an array
while (playerGuess > 0 ) {
i = 0;
playerGuessArray[i] = playerGuess % 10;
i++;
playerGuess /= 10;
}
// turns generatedNum into an array
while (generatedNum > 0) {
i = 0;
generatedNumArray[i] = generatedNum % 10;
i++;
generatedNum /= 10;
}
// compares the two arrays
for (k = 3; k >= 0; k--) {
for (j = 3; j >= 0; j--) {
if (generatedNumArray[k] == playerGuessArray[j]) {
score++;
playerGuessArray[j] = 0;
j = -5;
}
}
}
return score;
}
【问题讨论】:
-
您能发布您当前的输出/错误消息吗?
-
j = -5你想做什么?将playerGuessArray[j]设置为-1 之类的值不是更好吗,因为 0 是您的用例的有效数字。
标签: c arrays for-loop while-loop