2017-09-19 1 views
-1

Jetzt muss ich ein Programm schreiben, das die Elemente bei den geraden Indizes eines Arrays (Indizes: 0,2,4,6 usw.) hinzufügt. Ich habe den Code geschrieben und es sieht gut für mich aus, aber aus irgendeinem Grund bekomme ich nicht das richtige Ergebnis. Irgendwelche Ideen/Tipps werden geschätzt, weil ich weiß, dass es etwas Kleines ist, das ich vermisse. Danke allen!Hinzufügen von Elementen am geraden Index des Arrays

#include <iostream> 

int main() { 

    int i; 
    int arr[] = {1,3,2,4,5,6,2}; 
    int size = 7; 
    int sum = 0; 

    //For loop to loop through the array 
    for(i = 0; i < size; i++) { 
     //If the index modulus 2 is 0 (even number) add that number to the sum 
     if(arr[i] %2 ==0){ 
      sum += arr[i]; 
     } 
    } 
    //Printing out the sum of the even indexes elements 
    printf("%d",sum); 
} 
+3

Wollen Sie damit sagen, wenn (i% 2 == 0) {? –

+0

'arr [i]% 2' - Array testen * Element *, nicht sein * index *. Und es kann viel effizienter durchgeführt werden, indem nur gerade Indizes iteriert werden. –

+0

Ich sollte 10 (1 + 2 + 5 + 2) bekommen, aber ich bekomme 14 –

Antwort

3

Die if Bedingung i statt arr[i] verwenden sollten, weil Sie auch Indizes wollen nicht einmal

+0

Okay, nach dem Versuch bekomme ich immer noch 14 als Gesamtsumme. Es sollte 1 + 2 + 5 + 2 hinzufügen, was 10 ist. –

+0

Dann drucken Sie die Elemente, die Sie hinzufügen. Oder verwende einen Debugger. –

1

Der Index des Array im Code-Werte ist nur i. Sie nehmen den Modulus des Wertes, der im i ten Element Ihres Arrays gespeichert ist.

Versuch:

if(i % 2 == 0) { 
+0

Nach dem Versuch, ich bekomme immer noch 14 als die Gesamtsumme, sollte es 10 sein –

+0

Dies kann eine gute Gelegenheit für Sie zu lernen, einen Debugger zu verwenden und Schritt durch Ihren Code und sehen, was passiert, wie Sie durchschleifen. Wenn das vorläufig zu beängstigend ist, können Sie immer noch ein paar 'printf's hinzufügen, um nach jeder Schleifeniteration' sum' zu betrachten. –

+0

Gibt es einen Debugger im Editor? Wie benutzt man es? –

0

Wenn Sie arr[i] schreiben, das bedeutet, dass Sie mit dem Element auf i ten Position beschäftigen möchten in Array arr[]. Wenn Sie also beispielsweise arr[0] (für i = 0) sagen, bedeutet das den Wert 1 gemäß Ihrer array. Die index Werte sind wie in i erwähnt. Wenn Sie also mit index arbeiten möchten, arbeiten Sie nur mit i und nicht mit mit arr[i]. Um zu überprüfen, ob Ihre index gerade oder nicht, dass Sie es wie unten tun können:

if(i % 2 == 0) 
Verwandte Themen