2016-09-29 73 views
-1

将numMatches设置为等于matchValue的userValues(具有NUM_VALS个元素)中的元素数。例如:如果匹配值= 2和userValues = {2,2,1,2},然后numMatches = 3JAVA:在数组中查找值

import java.util.Scanner; 

public class FindMatchValue { 
public static void main (String [] args) { 
    final int NUM_VALS = 4; 
    int[] userValues = new int[NUM_VALS]; 
    int i = 0; 
    int matchValue = 0; 
    int numMatches = -99; // Assign numMatches with 0 before your for loop 

    userValues[0] = 2; 
    userValues[1] = 2; 
    userValues[2] = 1; 
    userValues[3] = 2; 

    matchValue = 2; 

    **/* Your solution goes here */** 

    numMatches = 0; 

for(i = 0; i < NUM_VALS; ++i) { 
    if(userValues[i] == matchValue) 
     numMatches = i; 
}   
    System.out.println("matchValue: " + matchValue + ", numMatches: " +  numMatches); 

    return; 
    } 
} 

我的解决方案有错误,我想不通。

测试匹配值= 0,

userValues = {0,0,0,0,0}

预期值:5

你的值:4 < < <这是我我错了。

+0

你的问题是......? – Rudy

回答

2
for(i = 0; i < NUM_VALS; ++i) { 
    if(userValues[i] == matchValue) { 
     //numMatches = i; //WRONG 
     numMatches++;  //Correct 
    } 
} 

此块是不正确,你分配numMatches到数组的索引值相反,它应该是,如果由1

1

numMatches++有numMatches的比赛增量值这就是你需要做for循环而不是numMatches = i;