2011-11-11 5 views
-2

간단히 말해서이 프로그램은 좌표가 포함 된 두 개의 배열을 하나의 큰 배열로 병합합니다. 유일한 문제는 배열에 [0] [0] 값이 많기 때문에 단순히 좌표 쌍의 수를 계산하려고합니다. NOT 0, 0/값 문제가 발생합니까?

counter = 0; 

    int merged[][] = new int[lupper.length + llower.length][COLUMNS]; 


    for (int i=0; i<ROWS; i++){ 
     merged[i][0] = lupper[i][0]; 
     merged[i][1] = lupper[i][1]; 


     for (int j=lupper.length; j<ROWS; j++){ 
      merged[j][0] = llower[j][0]; 
      merged[j][1] = llower[j][1]; 
     } 
    } 

    for (int i=0; i<merged.length; i++){ 
     if (merged[i][0] == merged[0][0]){ 
      counter = counter++; 
     } 
     if (merged[i][1] == merged[0][0]){ 
      counter = counter++; 
     } 
    } 

왜 카운터가 계속 0으로 반환됩니까?

+1

무엇을 여기서 할 수 있습니까? – Pratik

+0

여기에 질문이 있습니까? –

+0

주 문제 카운터가 0으로 계속 되 돌아오고 –

답변

4

당신은 당신의 코드가 있습니다

counter = counter++; 

그것은 counter의 값을 증가하지 않습니다. 대신 시도 할 수 있습니다 :

counter++; 
+0

정말 멋지게 해결되었으므로 간단합니다 ... –

2

당신의 카운터의 문제는 말을해야한다는 것입니다 :

counter++; 

하지를 :

counter = counter++; 
그 이유는이 증가한다는 것입니다

오른 손잡이가 평가 된 후의 값. 따라서 카운터의 이전 값이 왼쪽 카운터에 지정됩니다. 이 카운터는 항상 같을 것입니다.

1

llower 루프가 잘못되었습니다. 루프가 lupper 루프에 중첩되어서는 안되며 인덱스가 잘못되었습니다. lupper의 길이가이 시도 ROWS

for (int j=lupper.length; j<ROWS; j++){ 
     merged[j][0] = llower[j][0]; 
     merged[j][1] = llower[j][1]; 
    } 

동일하기 때문에 다음 코드는 다른 사람이 지적대로 counter++counter = counter++을 변경해야 ... 또한,하지 루프에서 모든

for (int i=0; i<ROWS; i++){ 
    merged[i][0] = lupper[i][0]; 
    merged[i][1] = lupper[i][1]; 
} 


for (int j=0; j<ROWS; j++){ 
    merged[j+ROWS][0] = llower[j][0]; 
    merged[j+ROWS][1] = llower[j][1]; 
} 

을한다

관련 문제