[C/C++] Array multiplizieren

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von eFighter, 24. Mai 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 24. Mai 2009
    Array multiplizieren

    PHP:
    #include <iostream>

    using  namespace  std ;

    int main ()
    {
        
    cout  <<  "Bitte eine Zahl zwischen 0 und 9 eingeben"  <<  endl ;
        
    int eingabe [ 3 ];      // Deklaration des ersten Arrays mit 3 Feldern.
        
    cin  >>  eingabe [ 0 ];   // Einlesen des ersten Feldes.

        
    cout  <<  "Bitte eine Zahl zwischen 0 und 9 eingeben"  <<  endl ;
        
    cin  >>  eingabe [ 1 ];   // Einlesen des zweiten Feldes.

        
    cout  <<  "Bitte eine Zahl zwischen 0 und 9 eingeben"  <<  endl ;
        
    cin  >>  eingabe [ 2 ];   // Einlesen des dritten Feldes

        
    cout  <<  "Ihre eingegeben Zahlen waren: "  <<  eingabe [ 0 ] <<  " und "  <<  eingabe [ 1 ] <<  " und "  <<  eingabe [ 2 ] <<  endl ;

        
    int eingabex5 [ 3 ];    // Deklaration des zweiten Arrays, ebenfalls mit 3 Feldern. 
        
    eingabex5 [ 3 ] =  eingabe [ 3 ] *  5 ;   // Einlesen des zweiten Arrays aus erstem Array mulitpliziert mit 5.

        
    cout  <<  "Nach einer Multiplikation mit 5 sind ihre Zahlen: "  <<  eingabex5 [ 0 ] <<  " und "  <<  eingabex5 [ 1 ] <<  " und "  <<  eingabex5 [ 2 ] <<  endl ;


        
    system ( "PAUSE" );
        return 
    0 ;

    }

    Ich lasse das Programm laufen und trage folgendes ein!

    Meine Frage ist jetzt, wieso da am Ende so abnormale Zahlen rauskommen?
    Mein Verständnis ist bisher so. Ich habe das Array, gefüllt mit 3 einzelnen Werten.
    Wenn ich dieses Array mit 5 mulitpliziere, so gilt das für jeden einzelnen Wert in diesem Array.

    Angenommen also, das Array ist wie im obigen Beispiel mit den Werten 3,5,9 gefüllt, dann sollte eigentlich in der letzten Zeile rauskommen: 15,25,45!

    Aber wie gut zu sehen ist dies leider nicht so. Und ich habe keine Ahnung wieso das so ist.
    Kann mir dabei wer helfen?
     
  2. 24. Mai 2009
    AW: Array multiplizieren

    Code:
     eingabex5[3] = eingabe[3] * 5; // Einlesen des zweiten Arrays aus erstem Array mulitpliziert mit 5.
    
    geht so nicht...
    eingabex5[3] versucht auf das 4te Element des Arrays zuzugreifen. Du hast aber nur eingabex5[0], eingabex5[1] und eingabex5[2]. Das gleiche gilt für deine Multiplikation. Eingabe[3] existiert nicht.

    mach es mit einer schleife:
    for(int i =0; i<3;i++) eingabex = eingabe*5;

    danach sollten deine ergebnisse stimmen.

    Du kannst dein Array nur Zeilenweise einlesen, nicht alles auf einmal. Ist ne CPU sache, die kann nur eins nach dem anderen. Anders bei Vektorrechnern. Die können riesige Arrays auf einmal in ihre Register laden, und mal eben parallel berechnen.
     
  3. 24. Mai 2009
    AW: Array multiplizieren

    falsch.
    eingabex5[3] greift nicht auf das Array als ganzes zu, sondern auf das Element mit dem Index 3.
    Da dein Array aber nur 3 Elemente (->Index 0, 1 und 2) hat, gibt es dieses Element gar nicht.
    Eigentlich müsste das Programm hier schon abstürzen... :]

    Bei der Ausgabe gibst du dann die Werte der uninitialisierten Arrayfelder aus, und das sind irgendwelche zufälligen Zahlen.

    Also musst du alle Elemente einzeln multiplizieren:

    Code:
    for(int i=0; i<3; i++)
    {
     eingabex5[i] = eingabe[i] * 5;
    }
     
  4. 24. Mai 2009
    AW: Array multiplizieren

    ja. mein gedanke war, dass es ähnlich wie bei einer vektorrechnung funktioniert.

    irgendwie doof, dass das nicht funktioniert. ich versuchs mal mit der for schleife. danke bis hierhin.

    //edit:

    PHP:
    #include <iostream>

    using  namespace  std ;

    int main ()
    {
        
    cout  <<  "Bitte eine Zahl zwischen 0 und 9 eingeben"  <<  endl ;
        
    int eingabe [ 3 ];      // Deklaration des ersten Arrays mit 3 Feldern.
        
    cin  >>  eingabe [ 0 ];   // Einlesen des ersten Feldes.

        
    cout  <<  "Bitte eine Zahl zwischen 0 und 9 eingeben"  <<  endl ;
        
    cin  >>  eingabe [ 1 ];   // Einlesen des zweiten Feldes.

        
    cout  <<  "Bitte eine Zahl zwischen 0 und 9 eingeben"  <<  endl ;
        
    cin  >>  eingabe [ 2 ];   // Einlesen des dritten Feldes

        
    cout  <<  "Ihre eingegeben Zahlen waren: "  <<  eingabe [ 0 ] <<  " und "  <<  eingabe [ 1 ] <<  " und "  <<  eingabe [ 2 ] <<  endl ;

        
    int eingabex5 [ 3 ];    // Deklaration des zweiten Arrays, ebenfalls mit 3 Feldern.

        
    for( int i = 0 i < 3 i ++)
        {
            
    eingabex5 [ i ] =  eingabe [ i ] *  5 ;
        }

        
    cout  <<  "Nach einer Multiplikation mit 5 sind ihre Zahlen: "  <<  eingabex5 [ 0 ] <<  " und "  <<  eingabex5 [ 1 ] <<  " und "  <<  eingabex5 [ 2 ] <<  endl ;


        
    system ( "PAUSE" );
        return 
    0 ;


    }
    Läuft Bombe! thx ^^
     
  5. 25. Mai 2009
    AW: Array multiplizieren

    [x] erledigt
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.