2016-09-29 3 views
-1

numValue와 동일한 userValues ​​(NUM_VALS 개의 요소를 가짐)의 요소 수에 numMatches를 설정하십시오. 예 : matchValue = 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; 
    } 
} 

내 솔루션 실수가 있으면 내가 알아낼 수 없습니다.

테스트 matchValue는 = 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;

관련 문제