2012-04-11 8 views
1

das ist, was ich habe. es springt über die Null. Wie kann ich das beheben? Ich versuche zu zählen, wie oft die Nummern dupliziert werden.Nested Loop Vergleichen von Ints in einem Array

void hit_rate(int a, int cmset[]) 
{ 
    int i, j, k=0; 
    for(i=0;i<a;i++){ 
     for(j=i;j<a;j++){ 
      if((cmset[i] == cmset[j])){ 
       k++; 
      } 
     } 
     printf("%d\n",k); 
     k=0; 
    } 
} 

cmset  k **now** prints 
    4   2  
    6   1   
    0   3  
    0   2  
    0   1  
    1   1  
    2   1  
    4   1  
+3

'für (j = 0; j <= 1; j ++)' ist das richtig? – Naveen

+0

nein, es war nicht, danke – oldbutnew

Antwort

3

werden, während dupliziert Zählen z.B. arr[5] = {1, 2, 2, 3, 3}; Start mit

i = 0; // first loop 
j = i; //2nd loop 

comapre arr[i] == arr[j]; //condition Durch dem, was, wenn Sie arr haben getestet geschieht [0] mit all i = 1..4; In der nächsten Iteration müssen Sie a [1] mit arr [0] nicht überprüfen, da dies bereits erledigt ist (oder aktiviert ist). Erhöhen Sie den Zähler (wenn die Duplizierung übereinstimmt). Sobald es das Ende des Array-Reset-Zählers beendet. und drucke es aus. Ich hoffe es hilft. Immer noch verwirrt dann werde ich Ihnen Beispielcode zur Verfügung stellen.