Programm wird nicht richtig ausgeführt --- C++ ----



  • Also ich komme da nicht dahinter...

    Könntet ihr mir noch konkretere Hinweise / Hilfen geben?

    Hier mal die Aufgabe. Vielleicht gehe ich das ganze ja falsch an.

    Vielen Dank euch schon Mal!

    Ziel ist die Verwendung von Funktionen für Teilaufgaben eines
    Programms und die Benutzung von Arrays.
    1. Aufgabe
    Es ist ein Programm zu erstellen, in welchem der Anwender einen
    Array einlesen und aus einer Anzahl möglicher Aufgaben
    Operationen mit dem Array eine auswählen kann.
    Dazu soll das Programm ein Menü anzeigen, aus dem eine
    Aufgabe durch Eingabe einer Zahl ausgewählt wird. Die Aufgaben
    sollen wiederholt angeboten werden bis zur Beendigung des
    Programms durch den Anwender. Jede Aufgabe soll in einer
    eigenen Funktion bearbeitet werden. Die maximale Anzahl der
    Elemente des Arrays sei 10.
    Folgende Aktionen sollen zur Auswahl stehen und mittels switch
    realisiert werden:
    1. Aufgabe: Das Array mit der vorgegebenen Zahl der Elemente
    soll (neu) eingelesen werden.
    2. Aufgabe: Das Array soll gespiegelt werden (Reihenfolge
    umkehren)
    3. Aufgabe: Das Array soll am Bildschirm angezeigt werden.
    4. Aufgabe: Ein zusätzliches Element ist einzulesen (falls
    möglich) und an die erste Position (Index 0) zu setzen. Die
    bisherigen Elemente sind um eine Position nach hinten zu
    verschieben.
    5. Aufgabe: Das Programm beenden.
    Für jede der 5 Teilaufgaben sowie das Gesamtprogramm sind
    Struktogramm und Testplan zu erstellen. Darüber hinaus sind im
    Programm ausreichend Kommentare anzugeben, Abfragen und
    Schleifen sind einzurücken und die Ausgabe ist unter Verwendung
    von Manipulatoren gefällig zu gestalten.
    Hinweis: Achten Sie bei der Erstellung des Testplans auf alle
    Fehlerfälle und fangen Sie diese in Ihrem Programm ab.
    Beispiel:
    Bitte wählen Sie eine Aufgabe aus in dem Sie
    die Nummer der Aufgabe eingeben:
    1. Array einlesen (10 Zahlen)
    2. Array spiegeln
    3. Array anzeigen
    4. Zusätzliches Element einlesen
    5. Programm beenden
    1
    Bitte geben Sie Arrayelement 1 ein: 1
    Bitte geben Sie Arrayelement 2 ein: 2
    Bitte geben Sie Arrayelement 3 ein: 3
    Bitte geben Sie Arrayelement 4 ein: 123
    Bitte geben Sie Arrayelement 5 ein: 3
    Bitte geben Sie Arrayelement 6 ein: 10
    Bitte geben Sie Arrayelement 7 ein: 2
    Bitte geben Sie Arrayelement 8 ein: 3
    Bitte geben Sie Arrayelement 9 ein: 9
    Bitte geben Sie Arrayelement 10 ein: 5
    Bitte wählen Sie eine Aufgabe aus, indem Sie
    die Nummer der Aufgabe eingeben:
    1. Array einlesen (10 Zahlen)
    2. Array spiegeln
    3. Array anzeigen
    4. Zusätzliches Element einlesen
    5. Programm beenden

    Hier der aktuelle Code:

    #include <iostream>
    
    using namespace std;
    
    int arr[10];
    int x;
    int i = 10;
    int laenge = 10;
    int start = 1;
    
    void Array_einlesen(int arr[], int x)
    {
    for(x = 1 ; x <= 10 ; x++)
    	{
            cout << " Bitte geben Sie die Zahl Nummer "  << x << " ein." << endl;
            cin >> arr[x];
        }
    }
    void Array_spiegeln( int arr[], int laenge, int start)
    {
    	if(laenge >= start)
    	{
    	int hinten = arr[laenge -1];
    	int vorne = arr[start];
    	arr[laenge -1] = vorne;
    	arr[start] = hinten;
    	}
    }			
    void Array_anzeigen(int arr[], int x)
    {
      for(x = 1 ; x <= 10 ; x++)
    	{      
    		cout << arr[x] << " ";	
    	}
      cout << endl;
    }
    void Element_einlesen(int arr[], int i){
    i = 0;
    cout << " Bitte geben Sie eine Zahl ein, die an Index 0 gesetzt werden soll." << endl;
    cin >> arr[i];
    
    }
    
    int main()
    {
    
    	char op;
    
    	cout << "Bitte waehlen sie aus folgenden Aktionen:" << endl;
    	cout << "1: Array einlesen (maximal "<< 10 <<" ) Elemente"<< endl;
    	cout << "2: Array spiegeln" << endl;
    	cout << "3: Array ausgeben" << endl;
    	cout << "4: Element dem Array an Index 0 hinzufuegen" << endl;
    	cout << "5: Das Programm beenden" << endl;
    
    do
    {
    	cin >> op;
    
    	switch (op)
    	{
    
    		case '1':
    			cout << " Array einlesen: \n"<< endl;
    			Array_einlesen(arr, x);
    
    			break;
    
    		case '2':
    			Array_spiegeln(arr, laenge, start);
    			cout << " Array wurde gespiegelt. \n" << endl;
    			break;
    
    		case '3':
    
    			cout << " Array ausgeben: \n" << endl;
    			Array_anzeigen(arr, x);
    
    			break;
    
    		case '4':
    			cout << " Element einlesen: \n" << endl;
    			Element_einlesen(arr, i);
    
    			break;
    
    		case '5':
    
    			cout << " Das Programm wird  beendet. \n" << endl;
    
    			break;
    
    		default:
    
    			cout << " Unzulaessige Wahl. Bitte erst den Array einlesen. " << endl;
    
    			break;
    
    	}
    }
    while (op != '5');
    
    system ("pause");
    return 0;
    }
    


  • Wieviel konkreter sollen wir denn noch werden?
    HAben wir doch schon gesagt:
    - Keine auf globale Variablen (die nach using namespace )
    - Der Index beim Array fängt bei 0 an.
    zusätzlich:
    - Nimm aussagekräftige Variablennamen
    - Nutze den Rückgabewert von Funktionen wo es sinnvoll ist

    Beispiel:

    void Array_anzeigen(int arr[], int anzahl)
    { 
      for(int i = 0; i < anzahl; i++) // Der Index fängt bei 0 an !
        {      
            cout << arr[i] << " "; 
        }
      cout << endl;
    }
    

    Da musst du natürlich auch die richtige Anzahl mit übergeben.
    (Bis auf das cout ist das aber C)



  • So,

    dank eurer Hilfe ist es gelungen. Ist jetzt nicht gerade formschön oder clever aufgebaut, aber es funktioniert.... 😃

    Danke euch! 👍

    #include <iostream>
    
    using namespace std;
    
    int arr[10];
    const int limit = 10;
    
    void Array_einlesen(int arr[])
    {
    for(int x = 0 ; x < limit ; x++)
    	{
            cout << " Bitte geben Sie die Zahl Nummer "  << x+1 << " ein." << endl;
            cin >> arr[x];
        }
    }
    void Array_spiegeln( int arr[])
    {
    int temp;
    
    temp = arr[9];
    arr[9] = arr[0]; // Element 9 wird mit Element 0 vertauscht.
    arr[0] = temp;
    
    temp = arr[8];
    arr[8] = arr[1]; // Element 8 wird mit Element 1 vertauscht.
    arr[1] = temp;
    
    temp = arr[7];
    arr[7] = arr[2]; // Element 7 wird mit Element 2 vertauscht.
    arr[2] = temp;
    
    temp = arr[6];
    arr[6] = arr[3]; // Element 6 wird mit Element 3 vertauscht.
    arr[3] = temp;
    
    temp = arr[5];
    arr[5] = arr[4]; // Element 5 wird mit Element 4 vertauscht.
    arr[4] = temp;
    
    }			
    void Array_anzeigen(int arr[])
    {
      for(int x = 0; x < limit; x++) 
        {      
            cout << arr[x] << " ";
        }
      cout << endl;
    }
    void Element_einlesen(int arr[])
    {
    int reserve, hilf;       
    
    			reserve = arr[1];
    			arr[1] = arr[0];	// Element 1 wird eine Position nach hinten geschoben.
    			hilf = arr[2];
    			arr[2] = reserve;	// Element 2 wird eine Position nach hinten geschoben.
    			reserve = arr[3];	
    			arr[3] = hilf;		// Element 3 wird eine Position nach hinten geschoben.
    			hilf = arr[4];		
    			arr[4] = reserve;	// Element 4 wird eine Position nach hinten geschoben.
    			reserve = arr[5];	
    			arr[5] = hilf;		// Element 5 wird eine Position nach hinten geschoben.
    			hilf = arr[6];		
    			arr[6] = reserve;	// Element 6 wird eine Position nach hinten geschoben.
    			reserve = arr[7];	
    			arr[7] = hilf;		// Element 7 wird eine Position nach hinten geschoben.
    			hilf = arr[8];
    			arr[8] = reserve;	// Element 8 wird eine Position nach hinten geschoben.
    			reserve = arr[9];
    			arr[9] = hilf;		// Element 9 wird eine Position nach hinten geschoben.
    
    								// Element 10 "fällt raus".
    
    cin >> arr[0];					// Element wird eingelesen und an Index 0 gesetzt.
    
    }
    
    int main()
    {
    
    	char op;
    
    	cout << "Bitte waehlen sie aus folgenden Aktionen:" << endl;
    	cout << "1: Array einlesen (maximal "<< 10 <<" ) Elemente"<< endl;
    	cout << "2: Array spiegeln" << endl;
    	cout << "3: Array ausgeben" << endl;
    	cout << "4: Element dem Array an Index 0 hinzufuegen" << endl;
    	cout << "5: Das Programm beenden" << endl;
    
    do
    {
    	cin >> op;
    
    	switch (op)
    	{
    
    		case '1':
    			cout << " Array einlesen: \n"<< endl;
    			Array_einlesen(arr);
    
    			break;
    
    		case '2':
    			Array_spiegeln(arr);
    			cout << " Array wurde gespiegelt. \n" << endl;
    			break;
    
    		case '3':
    
    			cout << " Array ausgeben: \n" << endl;
    			Array_anzeigen(arr);
    
    			break;
    
    		case '4':
    			cout << " Element einlesen: \n" << endl;
    			Element_einlesen(arr);
    
    			break;
    
    		case '5':
    
    			cout << " Das Programm wird  beendet. \n" << endl;
    
    			break;
    
    		default:
    
    			cout << " Unzulaessige Wahl. Bitte erst den Array einlesen. " << endl;
    
    			break;
    
    	}
    }
    while (op != '5');
    
    system ("pause");
    return 0;
    }
    


  • Du hast die Aufgabe aber nicht erfüllt.
    Der Benutzer soll entscheiden wieviel Werte er eingibt. Kann auch weniger als 10 sein.
    Sonst macht Aufgabe 4 ja keinen Sinn. (Und wenn schon alle Elemente belegt sind, darf kein neues eingelesen werden).

    Daraus folgt, das deine Funktionen mit einer variablen Anzahl von Elementen umgehen müssen.

    Bei Array_spiegeln musst du dir mal das Muster der Zahlen ansehen.
    Hast du wahrscheinlich schon bei Copy&Paste so geändert. Die eine Zahl rauf, die andere Zahl runter. Das geht auch so in einer Schleife.

    Und dann noch Element_einlesen 😮 🙄
    Eine eigenen Funktion nur zum verschieben (ohne Eingabe) wäre angebracht.

    Das verschieben so wie du es machst geht auch ohne Hilfsvariable.
    Überleg mal wie das an einer Kasse funktioniert, wenn der erste bezahlt hat und der Platz frei wird.
    Und dann weißt du auch, wie man das in einer Schleife machen kann.

    Wenn du limit vor arr definierst, kannst du dann

    const int limit = 10;
    int arr[limit];
    

    machen. Und das dann bitte in main und nicht global.
    Wenn du dann die aktuelle Anzahl bzw. limit mit an die Funktionen übergibst, hast du nur an einer Stelle die 10 stehen.
    Dann kannst du die jederzeit ändern und das Programm funktioniert immer noch richtig.



  • Wir haben es fast geschafft 🙂

    Hab das mit den globalen Elementen geändert. Habe jetzt aber das Problem, dass er bei void anzeigen nicht das n nimmt was ich eingegeben habe, sondern das initialisierte in der main... wie ändere ich das?

    Das mit den Schleifen bekomme ich nicht hin...

    #include <iostream>
    
    using namespace std;
    
    void Array_einlesen(int const limit, int n, int arr[])
    {
    cout << " Wie viele Elemente wollen Sie einlesen ( maximal "<< 10 <<" ) ? " << endl;
    cin >> n;
    cout << "" << endl;
    
    	if ( n > limit)
    	{
    	cout << " Es koennen nur maximal 10 Elemente eingelesen werden." << endl; 
    	}
    	else
    	{
    for(int x = 0 ; x < n ; x++)
    		{
            cout << " Bitte geben Sie die Zahl Nummer "  << x+1 << " ein." << endl;
            cin >> arr[x];
    		}
    	}
    }
    void Array_spiegeln( int arr[])
    {
    int temp;
    
    temp = arr[9];
    arr[9] = arr[0]; // Element 9 wird mit Element 0 vertauscht.
    arr[0] = temp;
    
    temp = arr[8];
    arr[8] = arr[1]; // Element 8 wird mit Element 1 vertauscht.
    arr[1] = temp;
    
    temp = arr[7];
    arr[7] = arr[2]; // Element 7 wird mit Element 2 vertauscht.
    arr[2] = temp;
    
    temp = arr[6];
    arr[6] = arr[3]; // Element 6 wird mit Element 3 vertauscht.
    arr[3] = temp;
    
    temp = arr[5];
    arr[5] = arr[4]; // Element 5 wird mit Element 4 vertauscht.
    arr[4] = temp;
    
    }			
    void Array_anzeigen(int n, int arr[])
    {
      for(int x = 0; x <= n; x++) 
        {      
            cout << arr[x] << " ";
        }
      cout << endl;
    }
    void Element_einlesen(int limit, int n, int arr[])
    {
    	if ( n >= limit)
    	{
    	cout << " Das Array ist schon voll. Bei Bedarf weniger Zahlen einlesen, dann erneut versuchen."<<endl;
    	}
    		else
    		{
    		arr[9] = arr[8];
    		arr[8] = arr[7];
    		arr[7] = arr[6];
    		arr[6] = arr[5];
    		arr[5] = arr[4];	
    		arr[4] = arr[3];
    		arr[3] = arr[2];
    		arr[2] = arr[1];
    		arr[1] = arr[0];
    
    		cin >> arr[0];	
    		}					
    }
    
    int main()
    {
    	const int limit = 10;
    	int n = 0;
    	int arr[limit];
    
    	char op;
    
    	cout << "Bitte waehlen sie aus folgenden Aktionen:" << endl;
    	cout << "1: Array einlesen (maximal "<< limit <<") Elemente"<< endl;
    	cout << "2: Array spiegeln" << endl;
    	cout << "3: Array ausgeben" << endl;
    	cout << "4: Element dem Array an Index 0 hinzufuegen" << endl;
    	cout << "5: Das Programm beenden" << endl;
    
    do
    {
    	cin >> op;
    
    	switch (op)
    	{
    
    		case '1':
    			cout << " Array einlesen: \n"<< endl;
    			Array_einlesen(limit, n, arr);
    
    			break;
    
    		case '2':
    			Array_spiegeln(arr);
    			cout << " Array wurde gespiegelt. \n" << endl;
    			break;
    
    		case '3':
    
    			cout << " Array ausgeben: \n" << endl;
    			Array_anzeigen(n, arr);
    
    			break;
    
    		case '4':
    			cout << " Element einlesen: \n" << endl;
    			Element_einlesen(limit, n, arr);
    
    			break;
    
    		case '5':
    
    			cout << " Das Programm wird  beendet. \n" << endl;
    
    			break;
    
    		default:
    
    			cout << " Unzulaessige Wahl. Bitte erst den Array einlesen. " << endl;
    
    			break;
    
    	}
    }
    while (op != '5');
    
    system ("pause");
    return 0;
    }
    


  • Du lässt n von ei.geben zurückgeben oder übergibst das als Referenz.



  • DirkB schrieb:

    - Nutze den Rückgabewert von Funktionen wo es sinnvoll ist.

    Aber bei beiden Einlese-Funktionen.

    Bei Array_anzeigen läuft deine Schleife zu weit.



  • Wie lasse ich n zurückgeben?

    Habe es mit int Array_einlesen und dann am Ende der Funktion mit return n verusucht. Es wird aber weiterhin nur das in der main initialisierte n verwendet. Ich soll die Aufgabe ohne Referenzen/Zeigern lösen.



  • Du entverwendst den Parameter n aus dem Funktionskopf, da du ihn nicht mehr brauchst.
    Stattdessen machst du eine lokale Variable in der Funktion, die gibst du zurück.
    Und das Ergebnis weißt du in deinem n in main zu.



  • Wie weise ich das Ergebnis in der main n zu? Sorry für die blöden Fragen.... Warte noch drauf dass es klick macht...



  • foo = func(param) !?



  • Könntest du die Zuweisung so schreiben wie ich sie hier brauchen würde?



  • Wenn du einer Variablen einen Wert zuweisen willst, dann schreibst du sie auf der linken Seite hin, gefolgt von einem =

    Auf der rechten Seite steht dann ein Ausdruck.

    Das kann eine Zahl sein, eine andere Variable, ein Funktionsaufruf oder auch eine Kombination daraus.



  • Mr. Bit schrieb:

    Könntest du die Zuweisung so schreiben wie ich sie hier brauchen würde?

    Du ersetzt einfach die Namen, durch deine eigenen.... 🙄
    Du musst dir dringend ein gutes Grundlagenbuch besorgen; Empfehlungen gibts hier im Forum.



  • Kannst du das bitte mal so schrieben wie ich es hier brauchen würde... komme so nicht weiter. Hab alles mögliche ausprobiert und immer hat es nicht geklappt.



  • Weise deiner Variablen n mal den Wert 5 zu und zeig uns den Code.



  • #include <iostream>
    
    using namespace std;
    
    int Array_einlesen(int const limit, int n, int arr[])
    {
    cout << " Wie viele Elemente wollen Sie einlesen ( maximal "<< 10 <<" ) ? " << endl;
    cin >> n;
    cout << "" << endl;
    
    	if ( n > limit)
    	{
    	cout << " Es koennen nur maximal 10 Elemente eingelesen werden." << endl; 
    	}
    	else
    	{
    for(int x = 0 ; x < n ; x++)
    		{
            cout << " Bitte geben Sie die Zahl Nummer "  << x+1 << " ein." << endl;
            cin >> arr[x];
    		}
    	}
    return n;
    }
    void Array_spiegeln( int arr[])
    {
    int temp;
    
    temp = arr[9];
    arr[9] = arr[0]; // Element 9 wird mit Element 0 vertauscht.
    arr[0] = temp;
    
    temp = arr[8];
    arr[8] = arr[1]; // Element 8 wird mit Element 1 vertauscht.
    arr[1] = temp;
    
    temp = arr[7];
    arr[7] = arr[2]; // Element 7 wird mit Element 2 vertauscht.
    arr[2] = temp;
    
    temp = arr[6];
    arr[6] = arr[3]; // Element 6 wird mit Element 3 vertauscht.
    arr[3] = temp;
    
    temp = arr[5];
    arr[5] = arr[4]; // Element 5 wird mit Element 4 vertauscht.
    arr[4] = temp;
    
    }			
    void Array_anzeigen(int n, int arr[])
    {
      for(int x = 0; x < n; x++) 
        {      
            cout << arr[x] << " ";
        }
      cout << endl;
    }
    void Element_einlesen(int limit, int n, int arr[])
    {
    	if ( n >= limit)
    	{
    	cout << " Das Array ist schon voll. Bei Bedarf weniger Zahlen einlesen, dann erneut versuchen."<<endl;
    	}
    		else
    		{
    		arr[9] = arr[8];
    		arr[8] = arr[7];
    		arr[7] = arr[6];
    		arr[6] = arr[5];
    		arr[5] = arr[4];	
    		arr[4] = arr[3];
    		arr[3] = arr[2];
    		arr[2] = arr[1];
    		arr[1] = arr[0];
    
    		cin >> arr[0];	
    		}					
    }
    
    int main()
    {
    	const int limit = 10;
    	int n = 5;
    	int arr[limit];
    
    	char op;
    
    	cout << "Bitte waehlen sie aus folgenden Aktionen:" << endl;
    	cout << "1: Array einlesen (maximal "<< limit <<") Elemente"<< endl;
    	cout << "2: Array spiegeln" << endl;
    	cout << "3: Array ausgeben" << endl;
    	cout << "4: Element dem Array an Index 0 hinzufuegen" << endl;
    	cout << "5: Das Programm beenden" << endl;
    
    do
    {
    	cin >> op;
    
    	switch (op)
    	{
    
    		case '1':
    			cout << " Array einlesen: \n"<< endl;
    			Array_einlesen(limit, n, arr);
    
    			break;
    
    		case '2':
    			Array_spiegeln(arr);
    			cout << " Array wurde gespiegelt. \n" << endl;
    			break;
    
    		case '3':
    
    			cout << " Array ausgeben: \n" << endl;
    			Array_anzeigen(n, arr);
    
    			break;
    
    		case '4':
    			cout << " Element einlesen: \n" << endl;
    			Element_einlesen(limit, n, arr);
    
    			break;
    
    		case '5':
    
    			cout << " Das Programm wird  beendet. \n" << endl;
    
    			break;
    
    		default:
    
    			cout << " Unzulaessige Wahl. Bitte erst den Array einlesen. " << endl;
    
    			break;
    
    	}
    }
    while (op != '5');
    
    system ("pause");
    return 0;
    }
    


  • Was ist daran so schwierig, den Variablennamen hinzuschreiben, deren Wert du ändern willst. Dann ein Gelichheitszeichen als Zuweisung und dann den Funktionsaufruf.

    Die Funktionen hast du ja schon mehrmals aufgrufen. Das kannst du.
    Deinen Variablen hast du auch schon mehrmals neue Werte zugewiesen. Sowohl konstante Werte als auch von Variablen. Das kannst du also auch.
    Nachdenken und verknüpfen.

    Nathan schrieb:

    foo = func(param) !?

    Dein_Variablenname_hier = Dein_Funktionsname_hier(Deine_Funktionsparameter);
    


  • Schreib es doch einfach bitte hin...

    Habe es jetzt so versucht aber es klappt nicht...

    #include <iostream>
    
    using namespace std;
    
    int Array_einlesen(int const limit, int n, int arr[])
    {
    cout << " Wie viele Elemente wollen Sie einlesen ( maximal "<< 10 <<" ) ? " << endl;
    cin >> n;
    cout << "" << endl;
    
    	if ( n > limit)
    	{
    	cout << " Es koennen nur maximal 10 Elemente eingelesen werden." << endl; 
    	}
    	else
    	{
    for(int x = 0 ; x < n ; x++)
    		{
            cout << " Bitte geben Sie die Zahl Nummer "  << x+1 << " ein." << endl;
            cin >> arr[x];
    		}
    	}
    return n;
    }
    void Array_spiegeln( int arr[])
    {
    int temp;
    
    temp = arr[9];
    arr[9] = arr[0]; // Element 9 wird mit Element 0 vertauscht.
    arr[0] = temp;
    
    temp = arr[8];
    arr[8] = arr[1]; // Element 8 wird mit Element 1 vertauscht.
    arr[1] = temp;
    
    temp = arr[7];
    arr[7] = arr[2]; // Element 7 wird mit Element 2 vertauscht.
    arr[2] = temp;
    
    temp = arr[6];
    arr[6] = arr[3]; // Element 6 wird mit Element 3 vertauscht.
    arr[3] = temp;
    
    temp = arr[5];
    arr[5] = arr[4]; // Element 5 wird mit Element 4 vertauscht.
    arr[4] = temp;
    
    }			
    void Array_anzeigen(int m, int arr[])
    {
      for(int x = 0; x < m; x++) 
        {      
            cout << arr[x] << " ";
        }
      cout << endl;
    }
    void Element_einlesen(int limit, int n, int arr[])
    {
    	if ( n >= limit)
    	{
    	cout << " Das Array ist schon voll. Bei Bedarf weniger Zahlen einlesen, dann erneut versuchen."<<endl;
    	}
    		else
    		{
    		arr[9] = arr[8];
    		arr[8] = arr[7];
    		arr[7] = arr[6];
    		arr[6] = arr[5];
    		arr[5] = arr[4];	
    		arr[4] = arr[3];
    		arr[3] = arr[2];
    		arr[2] = arr[1];
    		arr[1] = arr[0];
    
    		cin >> arr[0];	
    		}					
    }
    
    int main()
    {
    	const int limit = 10;
    	int arr[limit];
    	int n = 5;
    	int m = Array_einlesen(limit, n, arr);
    
    	char op;
    
    	cout << "Bitte waehlen sie aus folgenden Aktionen:" << endl;
    	cout << "1: Array einlesen (maximal "<< limit <<") Elemente"<< endl;
    	cout << "2: Array spiegeln" << endl;
    	cout << "3: Array ausgeben" << endl;
    	cout << "4: Element dem Array an Index 0 hinzufuegen" << endl;
    	cout << "5: Das Programm beenden" << endl;
    
    do
    {
    	cin >> op;
    
    	switch (op)
    	{
    
    		case '1':
    			cout << " Array einlesen: \n"<< endl;
    			Array_einlesen(limit, n, arr);
    
    			break;
    
    		case '2':
    			Array_spiegeln(arr);
    			cout << " Array wurde gespiegelt. \n" << endl;
    			break;
    
    		case '3':
    
    			cout << " Array ausgeben: \n" << endl;
    			Array_anzeigen(n, arr);
    
    			break;
    
    		case '4':
    			cout << " Element einlesen: \n" << endl;
    			Element_einlesen(limit, n, arr);
    
    			break;
    
    		case '5':
    
    			cout << " Das Programm wird  beendet. \n" << endl;
    
    			break;
    
    		default:
    
    			cout << " Unzulaessige Wahl. Bitte erst den Array einlesen. " << endl;
    
    			break;
    
    	}
    }
    while (op != '5');
    
    system ("pause");
    return 0;
    }
    


  • Rumraten gibt es nicht.
    klappt nicht... ist die schlechteste aller Fehlerbeschreibungen.

    Hast du dich nicht gewundert, dass jetzt zuerst die Eingabe kommt und dann das Menü?
    Das liegt daran, dass du es in der Reihenfolge programmiert hast.

    Du willst n (aus main) ändern (und nicht m)*
    Du willst dass der Wert von Array_einlesen kommt.
    Du willst dass das bei Option 1 passiert.

    DANN SCHREIB DAS DA AUCH HIN und nicht irgenwo im Code.

    *Die Variablen müssen nicht den selben Namen haben, du hast es nur so gewählt.


Anmelden zum Antworten