2016-04-24 7 views
1

Ich brauche Hilfe bei meinen Hausaufgaben. Ich muss eine Funktion erstellen, die die Summe der Elemente in einem Array berechnet. Ich habe ein 4X4-Array und ich muss die Summe von sagen wir Mitglieder aus der ersten Zeile berechnen. Ich muss dies für jede Kombination von Summen in der Zeile für eine bestimmte Anzahl von Mitgliedern aus dieser Zeile tun und überprüfen, ob es mit der Summe übereinstimmt, die die Benutzer mir gegeben haben. Wenn die Zeile 1 2 3 4 ist. Ich muss überprüfen (1 + 2 + 3 + 4), (2 + 3 + 4), (3 + 4), (1), (2), (3) , (4) ich weiß, wie zu überprüfen (1) (2) (3) (4) das Problem ist, dass, wenn ich bis zum Ende der ersten Summe (1 + 2 + 3 + 4) bekomme ich nicht wie man zu dem Index zurückkehrt, der die Summe (2 + 3 + 4) startet, ohne statische Variablen zu verwenden. mein Code ist dies:Zurück zum vorherigen Mitglied eines Arrays in c

bool row_sum(int length,int sum, int mat[N][N]) 
{ 
int temp_sum=0, i=0, j=0, cnt1=0; 
while (i<N) 
{ 
    while(j<N) 
    { 
     cnt1++; 
     temp_sum += mat[i][j]; 
     if ((temp_sum==sum) && (cnt1==length)) 
     { 
      return 1; 
     } 
     else if (temp_sum<sum) 
     { 
      j++; 
      continue; 
      } 
     else if (temp_sum>sum) 
     { 
      if (j==N-1) 
      { 
       temp_sum=0; 
       cnt1=0; 
       j=N; 
       break; 
      } 
      else 
      { 
      temp_sum=0; 
      j=(cnt1-j); 
      cnt1=0; 
      } 
     } 
     else if ((temp_sum<sum) && (cnt1=length)) 
     { 
      temp_sum=0; 
      j=(cnt1-j); 
      cnt1=0; 
     } 
    } 
i++; 
} 
    return 0; 
} 

Ich hoffe, dass ich klar .. es ist schwer, das Problem zu beschreiben. Vielen Dank, Adi.

Antwort

0

ein Array als Folge von Elementen gespeichert ist (char, int, ...) in einem Speicher, siehe How is the array stored in memory?

Sie entweder die Elemente eines Arrays zugreifen können Zeiger (siehe Zeiger arithmeticshttps://www.cs.umd.edu/class/sum2003/cmsc311/Notes/BitOp/pointer.html) unter Verwendung von oder durch direkte Verwendung des Indizes Adressierung finden Sie in diese http://www.tutorialspoint.com/cprogramming/c_multi_dimensional_arrays.htm

 0 1 2 3 

0 a b c d 

1 e f g h 

2 i j k l 

3 m n o p 

Also, wenn Sie die Buchstaben ‚k‘ in dem char Array über den Einsatz erhalten mögen char c = array[2][2]; Wenn Sie den Buchstaben "i" erhalten möchten, verwenden Sie char c = array[2][0];

Verwandte Themen