Körpergrößen über Array einlesen



  • Ich soll in einem Programm 6 Körpergrößen einlesen lassen über ein Array mittels for schleife. Da hapert es irgendwie am Anstaz:

    int groeße=0;
    
    cout << "Geben Sie die 6 Groessen ein: ";
    
        for(i=0;i<N;i++)
        {
            cin << groeße;
            array[i]=groeße;
        }
    


  • Es muss lauten cin >> groesse.

    Die Pfeile sagen dir ziemlich schön dir Richtung. Bei cout << wird ein Wert an cout für die Ausgabe gegeben. Bei cin >> gibt cin einen Wert an die rechts stehende Variable.



  • Ach ja stimmt natürlich. Nun habe ich das Programm mit Zusatzprogrammne geschrieben, aber irgendwie habe ich die übelsten Fehlermeldung. Wisst ihr, was noch alles flasch ist?

    #include <iostream>
    
    using namespace std;
    
    void mittelwert (float a, float b);
    void ausgabe (float a, float b, int array[]);
    
    int main()
    {
        const int N=6;
        int werte[N]={0};
        int a=0;
        int b=0;
        int mid=0;
    
        cout << "Geben Sie die 6 Groessen ein: ";
    
        for(i=0;i<N;i++)
        {
            cin >> groeße;
            array[i]=groeße;
        }
    
        mittelwert (a,b);
        ausgabe (a,b,werte);
    
        return 0;
    }
    
    void mittelwert(int N, int array[], float &a, float &b)
    {
        for (int i=0;i<N;i++)
        {
            mid +=array[i];
        }
        mid=mid/n;
        cout << endl << "Mittelwert aus " << a << " und " << b << ": " << mw << endl;
    
        return ;
    }
    
    void ausgabe (float a, float b, int array[])
    {
        cout << "1. Eintrag der Groessen lautet: " << array[0] << endl;
        cout << "2. Eintrag der Groessen lautet: " << array[5] << endl;
    }
    


  • Da sind haufenweise Fehler drin. Ich hab mal ein par Kommentare reingeschrieben bei Fehlern, die mir gerade aufgefallen sind.

    #include <iostream> 
    
    using namespace std; 
    
    void mittelwert (float a, float b); 
    void ausgabe (float a, float b, int array[]); 
    
    int main() 
    { 
        const int N=6; 
        int werte[N]={0}; 
        int a=0; 
        int b=0; 
        int mid=0; // Sollte wahrscheinlich ein double sein. Ist wohl sinvoller
    
        cout << "Geben Sie die 6 Groessen ein: "; 
    
        for(i=0;i<N;i++) // Welchen Typ hat i? Du muss explizit einen Typ angeben in C++, also int i = 0
        { 
            cin >> groeße; // Wo ist das deklariert? Muss irgendwo deklariert werdne, z.B. double groesse; (Kein doppel s verwenden)
            array[i]=groeße; // array ist ein reserviertes Wort. Du musst werte[i] machen. Hast ja extra ein Array mit Bezeichner werte gemacht.
        } 
    
        mittelwert (a,b); 
        ausgabe (a,b,werte); 
    
        return 0; 
    } 
    
    void mittelwert(int N, int array[], float &a, float &b) 
    { 
        for (int i=0;i<N;i++) 
        { 
            mid +=array[i]; // mid is hier nicht sichtbar, da es in main() deklariert wurde. Entweder mid als Argument übergeben oder mid ausserhalb der main deklarieren
        } 
        mid=mid/n; // Hier selber Problem wie oben. Ausserdem aufpassen mit Integerdivision. Mid sollte wohl eher double sein
        cout << endl << "Mittelwert aus " << a << " und " << b << ": " << mw << endl; 
    
        return ; // Brauchst du nicht zu schreiben, is redundant
    } 
    
    void ausgabe (float a, float b, int array[]) // Hier auch wieder das gleiche Problem. Nicht array als Bezeichner wählen, das ist ein reserviertes Wort
    { 
        cout << "1. Eintrag der Groessen lautet: " << array[0] << endl; // Sind das denn wirklich die grössten? Nur wenn das Array sortiert ist.
        cout << "2. Eintrag der Groessen lautet: " << array[5] << endl; 
    }
    

    Ich weiss nicht ob das alle sind. Aber versuch ersmal die wegzubekommen.



  • array[i]=groeße;

    so klappt das nicht

    du musst den array zuerst defineren

    int arrayname[size];

    und dann kannst du mit arrayname[i]= groeße darauf zugreifen



  • lekos schrieb:

    array[i]=groeße;

    so klappt das nicht

    du musst den array zuerst defineren

    int arrayname[size];

    und dann kannst du mit arrayname[i]= groeße darauf zugreifen

    Hat er auch gemacht. Das Array heisst bei ihm werte. Nur braucht er es nicht.



  • icarus2 schrieb:

    Entweder mid als Argument übergeben oder mid ausserhalb der main deklarieren

    Du meinst sicherlich mid in der Funktion mittelwert definieren. Das ist der sinnvolle Weg.



  • Michael E. schrieb:

    icarus2 schrieb:

    Entweder mid als Argument übergeben oder mid ausserhalb der main deklarieren

    Du meinst sicherlich mid in der Funktion mittelwert definieren. Das ist der sinnvolle Weg.

    Ja stimmt. Habe das falsch geschrieben.


Anmelden zum Antworten