Wert erhalten, vergleichen und Ausgeben!



  • Hallo zusammen,

    ich bin C++ Anfänger und versuch mich zurzeit an folgendem \1:

    Ziel:

    Ich möchte, dass man in dem Script einen Wert eingibt, diesen dann mit einem Array vergleicht (ob bereits der gleiche Wert vorhanden ist) und wenn dieser vorhanden ist, dann eine andere Variable um eine Zahl zu erhöhen. Sollte kein gleicher Wert vorhanden sein, möchte ich diesen dann in dem Array mit einem Indexwert hinzufügen. Also:

    Array = array[100]

    Array mit Indexwert = array[0], array[1] usw., also dann den Indexwert immer um einen erhöhen.

    Ich habe mich mal an folgendes versucht, jedoch klappt das nicht so ganz:

    #include<iostream>
    using namespace std;
    
    int main(void) {
        int array[100];
        int vara, varb=0, i;
    
        for (;;) {
            cout << "Wert eingeben: ";
            cin >> vara;
    
            if ( vara == array[i] ) {
                varb++;
                }
            else {
                 vara=array[i++];
                 }
            }
    }
    

    Die Schleife (For) habe ich mit absicht als Endlosschleife zugewiesen.

    Ich würde mich über eine Antwort sehr freuen. Vielen Dank!



  • #include<iostream>
    using namespace std;
    
    int main(void) {
        int array[100];
        int vara, varb=0, i;
    
        for (;;) {
            cout << "Wert eingeben: ";
            cin >> vara;
    
            if ( vara == array[i] ) {
                varb++;
                }
            else {
                 vara=array[i++];
                 }
            }
    }
    

    Die Variable i ist nicht initialisiert. Außerdem überprüfst du mit vara == array[i] nur, ob die Variable an der Stelle i im Array vorhanden ist und nicht im ganzen Array. Dafür bräuchtest du eine for Schleife die 100 mal läuft und jeden Wert des Arrays überprüft. Außerdem fügst du mit vara=array[i++]; keinen neuen Wert im Array ein, sondern weist der Variable vara den Wert des Index i++ von array zu.



  • Ah Wunderbar! Ich werde mich mal dran setzen und das ganze umstrukturieren! Danke 🙂

    EDIT: Seh ich das richtig, dass ich der Array überhaupt kein i zuweisen muss, sondern Array automatisch die nächst größrere Zahl nimmt? Oder wie kann ich in ner Schleife einen Wert in das Array übergeben?



  • Ich verstehe deine Frage nicht wirklich.
    Ich zeige dir mal wie du Werte zuweist und zurückgibst:

    int array[2];
    // Werte an Array zuweisen
    array[0] = 10;
    array[1] = 20;
    // ivar ist jetzt 20
    int ivar = array[1]
    


  • Ich möchte ja, dass die Indexwerte von Array automatisch zugeordnet werden und die Werte, die false (also nicht doppelt sind)eintragen.



  • Hat sich erledigt! Ich habe jetzt einfach 2 Arrays gemacht und diese miteinander verglichen. Vielen Dank =)!


Anmelden zum Antworten