C++ devc++



  • out schrieb:

    if( x > z ) { // kann man strings nicht nur so vergleich: if(strcmp(str1, str2) > 0)? also mit > wird das glaube ich nichts.
    

    Doch string s vergleichst du mit == < und >. strcmp vergleicht keine zwei string s, sondern zwei char[] .

    Oh. Ach so. 😃

    out schrieb:

    cout << " Bye " ; // ich wäre hier ja noch für ein: << "\n"
    

    Wieso? Danach kommt ein return 0 , was soll die neue Zeile noch bringen?

    Hm... ja wollte er das nicht länger da stehen haben?



  • Enno schrieb:

    out schrieb:

    if( x > z ) { // kann man strings nicht nur so vergleich: if(strcmp(str1, str2) > 0)? also mit > wird das glaube ich nichts.
    

    Doch string s vergleichst du mit == < und >. strcmp vergleicht keine zwei string s, sondern zwei char[] .

    Ne, da wird nur überprüft, ob das erste Zeichen im string gößer ist als das erste Zeichen des anderen strings. Wenn du die Gesamtgröße vergleichen willst, benutzt du

    if(x.size() > z.size())



  • Incocnito schrieb:

    Ne, da wird nur überprüft, ob das erste Zeichen im string gößer ist als das erste Zeichen des anderen strings. Wenn du die Gesamtgröße vergleichen willst, benutzt du if(x.size() > z.size())

    Von Größe hat keiner was geschrieben, und dass nur die ersten Zeichen verglichen werden ist Quark, es werden alle Zeichen verglichen - soweit nötig. Wenn das erste Zeichen schon unterschiedlich ist, ist das Ergebnis ja schon klar und der Vergleich kann abgebrochen werden.

    Hat aber mit der gnazen Problemstellung nichts zu tun, der OP will ja Zahlen vergleichen, da sind strings für den Vergleich völlig fehl am platz, egal ob per op<, strcmp, string::compare oder per Vergleich von size().



  • #include < iostream >
    #include <string>
    using namespace std;
    
    int main() {
    
        string x = Kekse;
    
        string z = Brot;
    
        boole ergebnis  x == z ;
    
        cin>> x >> z;
    
        if( x > z ) {
        cout << " String" << x << " ist groesser als String" << z;
    
        return 0;
    
        }
    
    }
    

    Kann ich den string so vergleichen?



  • Beratungsresitent 😕

    oder zu viel

    boole ergebnis  x == z ; // muss da nicht bowle hin?
    

    Nicht ganz ernst - aber da du schon drauf hingewiesen ...



  • Ich habs jetzt versucht nach euren tipps bisschen zu verbessern , aber es gibt immer noch error raus:

    #include < iostream >
    #include <string>
    using namespace std;
    
    int main() {
    
        string x = Kekse;
    
        string z = Brot;
    
        bool ergebnis  x == z ;
    
        cin>> x >> z;
    
        if( x.size() > z.size() ) {
        cout << " String" << x << " ist groesser als String" << z;
    
        return 0;
    
        }
    
    }
    

    Was mache ich falsch?



  • Die geschweiften Klammern bitte nicht nach dem Zufallsprinzip verteilen, sondern mit System und Überlegung.



  • Warum schreibst du nicht die kompletten Fehlermeldung mit Zeilennummer 😕

    #include < iostream >
    
    #include <iostream> // erkennst du den Unterschied?
    


  • programmer21 schrieb:

    Was mache ich falsch?

    Dein Programm ist einfach nur Müll. Merkwürdige Formatierung, syntaktisch total falsche Initialisierung (Z. 11)(und dazu wahrscheinlich noch anders gemeint), Kekse und Brot sind doch nicht in den Standard-Headern definiert (bzw. hast du vergessen daraus ein String-Literal zu machen? Soll das eigentlich "Kekse" heißen?), falsche Einbindung von <iostream>.



  • #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
       {
    
        string x = Kekse;
    
        string z = Brot;
    
        bool ergebnis  x == z ;
    
        cin>> x >> z;
    
        if( x.size() > z.size() )
    
        {
        cout << " String" << x << " ist groesser als String" << z;
    
        return 0;
    
        }
    
    }
    

    Es scheint aber immer noch nicht zu funktionieren.

    error Kekse and Brot were not declared in scope

    Was mache ich falsch .



  • Jetzt bitte mal, lieber Mensch, der hinter dem Pseudonym programmer21 steht, in voller Aufrichtigkeit : Ist das Ihr Ernst?



  • Ich bin leider programieranfänger und daher frage ich ja auch.



  • Was ist den nun an meinem Programm falsch?



  • Ausschlaggebend ist hier für dein Versagen definitiv nicht die Tatsache, dass du Programmieranfänger bist, sondern zu 100% ignorant und unfähig die unzähligen Ratschläge, die dir in dem Verlauf des Threads bereits gegeben wurde, umzusetzen und damit auf ein vollständiges und funktionierendes Programm zu kommen.

    Lass das Programmieren lieber sein. Bezahl jemanden dafür, dass er dir dir Hausaufgaben von deinem Informatik-Unterricht macht. Oder frag ein guten Freund.



  • Sone schrieb:

    Dein Programm ist einfach nur Müll. Merkwürdige Formatierung, syntaktisch total falsche Initialisierung (Z. 11)(und dazu wahrscheinlich noch anders gemeint), Kekse und Brot sind doch nicht in den Standard-Headern definiert (bzw. hast du vergessen daraus ein String-Literal zu machen? Soll das eigentlich "Kekse" heißen?), falsche Einbindung von <iostream>.

    Das solltest du wohl noch einmal lesen!



  • Weißt du wir froh ich über C++-Programmierung in der Schule gewesen wäre? Eigentlich haste ganz schönes Schwein, wir haben nur Delphi gemacht.

    Hier, gibs ab, sollte stimmen, aber lass dich bloß nichts dazu fragen, da du es wohl eh nicht verstehst.

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
        int a(0), b(0);
        cout << "Geben sie eine ganzzahlige Variable ein:\n";
        cin >> a;
        cout << "Geben sie noch eine ganzzahlige Variable ein:\n";
        cin >> b;
        int c(a+b);
        cout << a << "+" << b << "=" << c << "\n\n";
    
        float fa(0), fb(0);
        cout << "Geben sie eine Gleitpunktzahl ein:\n";
        cin >> fa;
        cout << "Geben sie nocheine Gleitpunktzahl ein:\n";
        cin >> fb;
        float fc(fa-fb);
        cout << fa << "-" << fb << "=" << fc << "\n\n";
    
        bool ba(0), bb(0);
        cout << "Geben sie true oder false ein:\n";
        string dummy;
        cin >> dummy;
        if (dummy == "false")
            ba = false;
        if (dummy == "true")
            ba = true;
    
        cout << "Geben sie true oder false ein:\n";
        cin >> dummy;
        if (dummy == "false")
            bb = false;
        if (dummy == "true")
            bb = true;
        bool bc(ba||bb);
        cout << ba << "||" << bb << "=" << bc << "\n\n";
    
        char ca(0), cb(0);
        cout << "Geben sie ein Zeichen ein:\n";
        cin >> ca;
        cout << "Geben sie noch ein Zeichen ein:\n";
        cin >> cb;
        bool cc(ca!=cb);
        cout << ca << "!=" << cb << "=" << cc << "\n\n";
    
        string sa, sb;
        cout << "Geben sie eine Zeichenkette ohne whitespaces ein:\n";
        cin >> sa;
        cout << "Geben sie noch eine Zeichenkette ohne whitespaces ein:\n";
        cin >> sb;
        bool sc(ca<cb);
        cout << sa << "<" << sb << "=" << sc << "\n\n";
    }
    


  • Enno schrieb:

    Sone schrieb:

    Dein Programm ist einfach nur Müll. Merkwürdige Formatierung, syntaktisch total falsche Initialisierung (Z. 11)(und dazu wahrscheinlich noch anders gemeint), Kekse und Brot sind doch nicht in den Standard-Headern definiert (bzw. hast du vergessen daraus ein String-Literal zu machen? Soll das eigentlich "Kekse" heißen?), falsche Einbindung von <iostream>.

    Das solltest du wohl noch einmal lesen!

    Hab' ich, bin zufrieden. Oder findest du ich war zu fies? Ich nicht.



  • Sone schrieb:

    Hab' ich, bin zufrieden. Oder findest du ich war zu fies? Ich nicht.

    HAHA nicht du! Der Threadersteller!
    Sah ein wenig danach aus als ob das überlesen wurde! Sry hätte ich deutlicher machen sollen.



  • Könnt ihr ncht bitte einfach mein Programm korriegieren, damit ich weiter machen kann.


  • Mod

    programmer21 schrieb:

    Könnt ihr ncht bitte einfach mein Programm korriegieren, damit ich weiter machen kann.

    Mit weitermachen meinst du, auf die Komplettlösung der nächsten Teilaufgabe zu warten?

    Du zeigst in diesem Thread keinerlei Lernwillen oder Eigeninitiative. Das ist hier sehr ungern gesehen. Ich mache den Thread nicht zu, weil ich nicht anderen Leuten vorschreibe, wem sie freiwillig(!) helfen wollen. Aber du darfst davon ausgehen, dass kaum jemand dir mehr helfen wird, wenn du deine Einstellung nicht gründlich änderst.


Anmelden zum Antworten