Problem



  • Folgenden Fehler hast du gemacht:

    Anstatt einen kleinem l hast du eine 1 als Namen für eine int-Variable verwendet.
    Das ist nicht erlaubt!

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int FindArea(int length, int width); // Funktionsprototype
    
    int main(int argc, char *argv[])
    {
    int lengthOfYard;
    int widthOfYard;
    int areaOfYard;
    
    cout << "\nWie breit ist Ihr Garten? ";
    cin >> widthOfYard;
    cout << "\nWie lang ist Ihr Garten? ";
    cin >> lengthOfYard;
    
    areaOfYard= FindArea(lengthOfYard,widthOfYard);
    
    cout << "\nDie Flaeche Ihres Gartens betraegt ";
    cout << areaOfYard;
    cout << " Quadratmeter\n}\n";       // Wie schon vorher gesagt, '}' Tippfehler,                                            // ist aber für die Funktion uninteressant
    system("PAUSE");
    return EXIT_SUCCESS;
    }
    
    int FindArea(int 1, int w)      // nicht int 'eins' ('1') sondern ein kleines l
    {
    return 1 * w;      // gleicher Fehler nochmal
    }
    

    Daraus schliesse ich, das du dich beim abtippen diese Codes verlesen hast.
    Der Name eines Typen, wie int oder auch float, char, usw... hat als erstes
    Zeichen niemals einen nummerischen Wert, darf es laut ANSI auch nicht haben.

    Da lag der Fehler, du hast versucht eine Variable vom Typen int, mit einer
    einfachen eins ('1') zu kennzeichnen, und das geht nicht...

    Jedenfalls war das ein Fehler den ich gefunden habe, danach lies sich der Code
    bei mir jedenfalls komplett complimieren (habe auch Dev-Cpp)



  • Danke für die Hilfe.
    Das Problem ist gelöst.



  • teodo schrieb:

    die geschweifte klammer in
    cout<<"Quadratmeter...}..." ist vermutlich ein tippfehler.auf jeden fall musss sie weg

    Nope.

    teodo schrieb:

    vielleicht helfen klammern weiter?
    return (l+w);

    Mit Sicherheit nicht. Die Syntax von return ist ohne Klammern spezifiziert.

    teodo schrieb:

    probieren geht über studieren...

    In diesem Fall geht wissen über probieren. 😉

    teodo schrieb:

    wenn der fehler immmer noch auftritt, dann versuch es zum ende von main mit
    return 0 anstelle von return EXIT_SUCCESS.

    Und was soll das bringen?
    Irgendwie hättest du dir deinen Beitrag sparen können. Manchmal ist es halt besser gar nichts zu sagen, anstatt lauter Fehlinformationen zu verbreiten.



  • Könnte mir bitte jemand die randomize-Funktion in C++ im Algemeinen erklären und wie ich ein Array mit, vom User festlegbarer Werteanzahl, zufälig bestimmen lasse ?

    Danke im Voraus.



  • @unknown87
    Was soll dieser Post denn in dem Thread hier? Mach doch für deine Frage einen eigenen Thread auf. Und nochwas soweit ich weiß, gibt es in Standard-C++ keine randomize()-Funktion.

    Die Funktionen heißen void srand(unsigned int seed) und int rand(void) (Header: cstdlib);

    Mit srand() initalisierst du den Zufallsgenerator. Mit rand() erzeugst du eine bestimmte Zufallszahl.

    Beispiel:

    #include <iostream> // Ein-Ausgabe
    #include <cstdlib> // fuer srand, rand...
    #include <ctime> // fuer time()
    using namespace std;
    
    int main()
    {
         srand(time(0)); // Generator mit aktueller Zeit initialisieren.
         int randomNr = rand() % 9; // Zufallszahl zwischen 0 und 8 erzeugen.
    
         cout << "\n randomNr: " << randomNr << endl;
         return 0;
    }
    

    Caipi



  • Danke Caipi,

    aber wie gebe ich denn jetzt zufällige Arrays aus und was hats mit der time-Funktion auf sich ?

    PS: der Header heißt doch time , nicht ctime oder ? -- zumindest finde ich den ctime-Header nicht



  • Was meinst du mit "zufällige Arrays"? Soll das Array zufällige Werte haben oder eine zufällige Anzahl an Elementen?

    Die Funktion srand() wird mit der Aktuellen Zeit initialisiert, damit der "Samen" immer ein wenig anders ist. Du könntest natürlich auch schreiben

    srand(9); // oder 108, oder 99)
    

    Nur wird dann der Generator immer mit der 9 initialisiert, weswegen die Zufallszahlen dann nicht so "zufällig" sind wie bei

    srand(time(0));
    

    Caipi



  • --Doppelpost--



  • Achso, danke .

    Die Anzahl der Arraywerte soll durch den User eingegeben werden. Das stellt ja kein Problem dar, aber
    die Werte an sich sollen zufällig sein.



  • Entweder Z.B. (Ungetestet)

    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    int main()
    {
          cout << "\n Wie viele Elemente soll das Array haben?: ";
          unsigned int s;
          cin >> s;
    
          int* v = new int[s];
          srand(time(0));
    
          for(unsigned int i = 0; i < s; ++i)
               v[i] = rand();
    
          cout << "\n Werte des Arrays (durch Zufall erzeugt):\n";
          for(unsigned int i = 0; i < s; ++i)
               cout << v[i] << ", ";
    
          delete[] v;
          return 0;
    }
    

    Oder mit std::vector (oftmals eleganter; So wie ich das hier geschrieben habe jedoch nicht unbedingt...) (Ungetestet)

    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    #include <vector>
    using namespace std;
    
    int main()
    {
          cout << "\n Wie viele Elemente soll das Array haben?: ";
          unsigned int s;
          cin >> s;
    
          vector<int> v(s);
    
          srand(time(0));
          for(unsigned int i = 0; i < s; ++i)
               v[i] = rand();
    
          cout << "\n Werte des Arrays (durch Zufall erzeugt):\n";
          for(unsigned int i = 0; i < s; ++i)
               cout << v[i] << ", ";
    
          return 0;
    }
    

    //Edit: Diese Code-tags...

    Caipi



  • Danke soweit.

    Muss ich erst mal verarbeiten.
    Ich versuchs umzusetzen.


Anmelden zum Antworten