gerade Zahlen verdoppeln im Array?



  • Guten Tag allerseits, ich hab eine Frage zum Array, da ich hier nicht besonders geübt bin.
    Ich will mithilfe eines Arrays die geraden Nummern innerhalb des Arrays verdoppeln und wieder ausgeben also z.B. 3,6,2,98,55,34,77,33,68,89. Dann soll er mir ausgeben: 3,12,4,196,55,68,77,33,136,178. Es wäre auch schön davon noch die Summe daraus auszugeben zu können. Ich mach das ja zum üben.

    Ich habe bisher das hier:

    int main()
    {
    int n;
    int array[10] = { 3, 6, 2, 98, 55, 34, 77, 33, 68, 89 };
    for (int j = 0; j < 10; ++j)
    {

    }
    
    return 0;
    

    }

    ich weiß ich steh praktisch noch am Anfang. Jetzt muss ich doch mit if () weiter machen. und irgendwo %2 einsetzen. Wie mache ich das aber jetzt. Oder muss ich das anders angehen?



  • Ja, dein Ansatz stimmt. Probiere es doch einfach...

    Scheint ja gerade in zu sein, s.a. bestimmte Zahlen eines array verdoppeln?



  • Also ja ich hab jetzt:

    for (int j = 0; j < 10; ++j)
    {
    if (array[j] % 2 == 0)
    array[j] = array[j] * 2;
    cout << " " << array[j];

    }
    

    und dann gibt er mir das aus was ich will doch wie kann ich denn jetzt die Elemente miteinander addieren?



  • @KarlSr sagte in gerade Zahlen verdoppeln im Array?:

    und dann gibt er mir das aus was ich will doch wie kann ich denn jetzt die Elemente miteinander addieren?

    Eine neue Variable mit dem Namen summe nehmen und dann die Elemente da drauf addieren.

    Zeig dann bitte deinen Code, denn es gibt da Fallen.



  • also brauche ich jetzt int summe. und dann vieleicht sowas wie

    summe+= array[j];

    ? so hätte ich es jetzt gemacht. Es scheint aber falsch zu sein: so sieht das jetzt bei mir aus:

    #include <iostream>
    using namespace std;
    int main()
    {

    int array[10] = {  3, 6, 2, 98, 55, 34, 77, 33, 68, 89 };
    int summe = 0;
    for (int j = 0; j < 10; ++j)
    {
    	if (array[j] % 2 == 0)
    		array[j] = array[j] * 2;
    	cout << " " << array[j];
    }
    
    cout << " " << endl;
    cout << "Summe: ";
    for (int j = 0; j < 10; ++j)
    {
    	if (array[j] % 2 == 0)
    		array[j] = array[j] * 2;
    	summe += array[j];
    	cout << array[j];
    return 0;
    

    }



  • Da fehlt noch eine geschweifte Klammer im letzten Code-Abschnitt.
    Und dann mußt du noch die Summe (an passender Stelle) ausgeben.



  • stimmt also die geschweifte klammer
    aber bei mir kommt dann sowas raus:
    8813212445550757961531282814132219251439553
    ich bin zwar kein Mathe Ass, aber ich glaube da muss noch ein Fehler drin sein😅 😅

    wo habe ich den Fehler gemacht oder muss ich noch was dazu machen?



  • Warum gibt es die for schleife 2 x ?
    Warum multiplizierst du alle geraden zahlen 2 x ?

    Wenn du das herausgefunden hast, hast du auch deinen Fehler



  • @KarlSr Lass dir auch mal den Wert von j ausgeben (so Zeile 16 oder 17)



  • Dieser Beitrag wurde gelöscht!


  • Ich hab`s jetzt vielen Dank Leute😄 😄


Anmelden zum Antworten