C++ Quellcode fehlerhaft?

4 Antworten

Wenn Du keine geschweiften Klammern nutzt wird in der Schleife jeweils nur die erste Anweisung berücksichtigt. Danach ist die Schleife vorbei.

D.h. Deine Schleifen werden entweder gar nicht oder unendlich oft durchlaufen, da sie die getestete Variable nicht verändern.

Okey, danke. Das hilft mir schon mal sehr.

1

Beachte, dass eine Operation, wie die Division, nur als rechtsseitiger Ausdruck aufgeführt werden darf.

(Zahl1 - 1) / 2 = ergebnis // wrong
ergebnis = (Zahl1 - 1) / 2; // correct

Hinter mehreren von deinen Anweisungen fehlen die abschließenden Semikolons und deine zuletzt gesetzte schließende schweifende Klammer müsste viel weiter nach unten (direkt hinter return 0;) verschoben werden. Das endl ganz zum Schluss sollte raus, es macht an der Stelle eh keinen Sinn.

Außerdem fehlt einmal wieder die Raute vor einigen deiner include-Direktiven.

Bezüglich des Stils noch drei Ratschläge, um den Quelltext besser lesbar zu gestalten:

  • Sei stringent in der Art, wie du Symbole (wie Variablen) benennst. Du beginnst beim Namen manchmal mit einem Groß-, dann wieder mit einem Kleinbuchstaben. Allgemein üblich ist es, sie mit einem Kleinbuchstaben zu starten. Des Weiteren wäre es besser, wenn du dich an eine Sprache (deutsch oder englisch) hältst, statt zu mischen.
  • Da du den Namespace std bereits einbindest, brauchst du ihn nicht mehr vor cout oder endl vorsetzen. Wenn du das doch machen möchtest, sollte es wenigstens einheitlich (überall) sein.
  • Führe Deklaration und Definition möglichst zusammen, um Zeilen einzusparen.
int number; // declaration
// ...
number = 1; // definition

// better:
int number = 1;

Dies sollte am besten so spät wie möglich erfolgen, um die Variable letztendlich nur in dem Kontext einzusetzen, in dem sie auch wirklich benötigt wird.

Extreme, schlecht lesbare Fälle sind solche, wo am Anfang der Funktion etliche Variablen deklariert werden, obwohl ihr Einsatzgebiet viel weiter unten liegt (was vertikales Herauf- und Herunterscrollen erfordert). Am Ende werden einige dieser Variablen vielleicht nicht einmal benutzt.

Vielen Dank. Das sind gute Ratschläge, werde Sie mir auf jeden Fall zu Herzen nehmen. Bin für jeden Weiteren Tipp dankbar.

0

Einen Quellcode schreibt mait Assembler.. Nicht mit einer Sprache. Assembler besteht nur aus Nullen und einzen.

Oder weist Du woras Win besteht?

Mario

Habe ersteinmal den Kode etwas aufgeräumt und nach Vermutung so angepasst,
wie es gemeint gewesen sein könnte.

#include<iostream>
using namespace std;
int main()
{
    int Zahl1;
    int Zahl2;
    int ergebnis1;
    int remainder;

    cout<<"Zahl1 eingeben"<<endl;
    cin >> Zahl1;
    cout<<"Zahl2 eingeben"<<endl;
    cin >> Zahl2;
    cout<<endl;

    do{ remainder=Zahl1%Zahl2;
        ergebnis1=Zahl1/Zahl2;

        cout<<Zahl1<<"/"<<Zahl2<<"="<<ergebnis1
            <<" Rest "<<remainder<<endl;

         if(ergebnis1==0) break;
    else if(ergebnis1 >0)Zahl1=Zahl1-1;
    }while (remainder!=0);
    return 0;
}

Danke sehr.

1

Was möchtest Du wissen?