Ausführungsproblem mit einem Quelltext



  • Einen schönen guten Morgen, bin neu hier, hoffe trotzdem auf motvierte Helfer.

    Es handelt sich um eine Aufgabenstellung, bzw. um deren Quelltext.

    Die Aufgabe an sich ist relativ einfach :
    - Programm sucht sich zufällig eine Zahl zwischen 1 und 1000 aus.
    - Anweder gibt Tipps.
    - Computer gibt ihm Auskünfte.
    - Prozess wird wiederholt bis die Nummer vom Anwender gefunden wurde.

    Quelltext :

    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int main()
    
    {
       int Geraten;
       int Suchzahl;
       srand(time(0)); // Will seed the generator to the current time object. Essentially, this will make the generator change it's set every time you run the program.
       SuchZahl = rand() % 1000 + 1;
    
       do 
       {
       	cout << "Eine Zahl zwischen 1 und 1000!" << endl;
       	cin >> Geraten;
    
       	if (Geraten < Suchzahl)
       	{
           	cout << "Zu klein!" << endl;
       	}
       	if (Geraten > Suchzahl)
       	{
           	cout << "Zu groß!" << endl;
       	}
       }
       while (Geraten != Suchzahl);
       cout << "Das war richtig!" << endl;
    }
    

    Das Ding müsste soweit passen, jedoch will der Compiler den Quelltext nicht verdauen, er beschwert sich über die Variable "Suchzahl" mit folgender Anmerkung :

    "main.cpp:15:4: error: ‘SuchZahl’ was not declared in this scope"

    Soweit ich es verstehe, geht es um die Initialisierung von der Variablen, selbst wenn ich sie auf 0 setzen würde, würde es nichts bringen, deshalb verstehe ich gerade nicht, was er von mir will.

    Wie ich gerade nochmal gesehen habe, spuckt mir das Terminal einen weiteren Hinweis aus, wenn ich diesen Zustand ignoriere :

    "./geany_run_script.sh: 5: ./main: not found"

    Bin neu in Ubuntu, trotzdem müsste sh wohl shell bedeuten, macht aber keinen Sinn für mich, werde es gleich nochmal im Internet nachschauen.

    An sich liegt das Problem nicht an geany, hab den gleichen Quelltext mit Code::Blocks ausführen lassen, mit dem Unterschied, dass dieser nicht mal das Terminal aufmachen wollte.

    Würde mich über Ideen und Anregungen freuen, da ich gerade wirklich feststecke.

    Mit freundlichem Gruss,

    Peng(uin)



  • #include <iostream>
    #include <cstdlib>
    

    Es fehlt

    #include <ctime> // für time()
    
    int Suchzahl;
    ...
       SuchZahl = rand() % 1000 + 1;
    

    Ja, klar kennt er SuchZahl nicht. Er kennt nur Suchzahl.



  • volkard schrieb:

    #include <iostream>
    #include <cstdlib>
    

    Es fehlt

    #include <ctime> // für time()
    

    Ehrlich gesagt funktioniert es wunderbar auch ohne diese Bibliothek (siehe unten).

    int Suchzahl;
    ...
       SuchZahl = rand() % 1000 + 1;
    

    Ja, klar kennt er SuchZahl nicht. Er kennt nur Suchzahl.

    Stimmt, bin ich ein Trottel, nicht zu glauben...
    Unglaublich, dass ein Schreibfehler einen Menschen soviel Zeit kosten kann.
    Eine logische Erklärung gibt es dafür wohl nicht, damit meine ich, dass man nach stundelangem Hinsehen sowas nicht sieht, ausser vielleicht Schlafmangel.

    Wie auch immer, vielleicht hilft dieser Quellcode später mal jemandem bei etwas, somit wäre die Anfrage zumindest nicht ganz so stupide gewesen.

    Danke volkard, danke für die schnelle und nette Hilfe.



  • Peng(uin) schrieb:

    volkard schrieb:

    Es fehlt

    #include <ctime> // für time()
    

    Ehrlich gesagt funktioniert es wunderbar auch ohne diese Bibliothek (siehe unten).

    Ehrlich gesagt ist hier die Lage eindeutig. In der Hilfe zu time() steht, daß sie in der <ctime> lebt.
    http://www.cplusplus.com/reference/clibrary/ctime/time/

    Und als ich Deinen Code compilieren wollte, hat er time() nicht gefunden und ich mußte erstmal überlegen, wie ich das repariere, bevor ich überhaupt zum Z gelangen konnte. Das nervt ein wenig. Laß Dich doch diesbezüglich auf den rechten Pfad stupsen. 🙂

    Auf Deinem Compiler klappt es zufällig ohne <ctime>. Wenn ich raten müßte, würde ich sagen, es ist ein Borland-Compiler, der

    inline void randomize(){
       srand(time(0));
    }
    

    in der <cstdlib> anbietet und zu diesem Behufe innerhalb der <cstdlib> auch die <ctime> inkludiert.



  • Falsches Forum Leute 🙂



  • Dieser Thread wurde von Moderator/in Dravere aus dem Forum C# und .NET in das Forum C++ (auch C++0x) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten