我有一个包含5个随机数的数组。像这样:
int correct[] = {11,23,54,13,5};
我有另一个数组,用户的猜测。像这样:
int userGuesses[] = {23,5,5,11,50};
我想找到用户正确猜出抽签号码的次数,因此无法重复。
就像userGuesses
有2个相同的数字并且用户猜对了,但是correct[]
只有一个值,而不是两个,那么程序就不应该算了。
这是我到目前为止所做的。
public static void main(String[] args) {
int correct = 0;
int good[] = {1,2,3,4,5};
int bad[] = {2,1,5,5,12,3};
for (int i = 0; i < 5; i++) {
if(good[i] == bad[i]){
correct++;
}
}
System.out.println(correct);
}
答案 0 :(得分:3)
尝试这样的事情:
int correct = 0;
int good[] = {1, 2, 3, 4, 5}; // correct answers
int bad[] = {2, 1, 5, 5, 12, 3}; // user guesses
for (int i = 0; i < good.length; i++) {
for (int j = 0; j < bad.length; j++) {
if (good[i] == bad[j]) {
correct++;
break;
}
}
}
System.out.println(correct);
好的,我写了一个小的Java程序,它确实有效。实际答案应该是4,因为用户猜测(假设&#39;不良&#39;数组是用户的猜测)数字:1,2,3和5,我们不计算两次。
答案 1 :(得分:0)
将要测试的值复制到临时数组中。然后,在找到匹配项时更改临时数组中的值。
int correct = 0;
int[] temp_array = bad.clone();// copy values to be tested into temp array
for(int i = 0; i < good.length; i++)
{
for(int j = 0; j < bad.length; j++)
{
if(good[i] == temp_array[j])// match found
{
correct++;// increment correct
temp_array[j] = -999;// change value to out-of-range
break;
}
}
}
System.out.println("number correct is " + correct);