Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] C++ Primezahlen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] C++ Primezahlen

    Moin,
    ich versuch mir gerade C++ beizubringen und scheitere bei meinem ersten Versuch gerade ziemlich:

    PHP-Code:
    #include <iostream>
    #include <cmath>
    using namespace std

    int main() {
        
    int primzahlen[1000];
        
    primzahlen[0] = 2;

        for (
    int i 3sizeof(primzahlen) < 999+= 2) {
            
    bool prim true;

            for (
    int ii 0ii sizeof(primzahlen) - 1ii++) {
                if (
    primzahlen[ii] == 0) {
                    
    prim false;
                    break;
                }
            }

            if (
    prim == true) {
                
    cout << << endl;
                
    primzahlen[sizeof(primzahlen)] = i;
            }
        }

        return 
    0;

    Eingentlich soll das Programm 1000 Primzahlen ausrechen und die dann ausgeben, aber es passiert: nix!
    Wenn ich das ganze kompilieren (NetBeans 6.9.1 + cygwin) dann steht in der Konsole einfach: 'Press [Enter] to exit (Bla)."
    Aber er gibt keine Zahlen aus.

    Hier gibt es doch bestimmt jemanden der mir sagen kann was da falsch ist ?

    Grüße
    Signatur:
    PHP-Code:
    $s '0048656c6c6f20576f726c64';
    while(
    $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"


  • #2
    sizeof tut etwas anderes, als das in PHP der Fall ist.

    http://www.imb-jena.de/~gmueller/kur.../c_sizeof.html

    Code:
    sizeof(primzahlen) / sizeof(int)
    wäre IMO das, was du suchst.

    Btw. Schau dir mal den Algorithmus http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes dazu an.
    http://hallophp.de

    Kommentar


    • #3
      Es gilt
      Code:
      sizeof(primzahlen) == 1000 * sizeof(int);
      da primzahlen ein Array ist, das 1000 Werte vom Typ int aufnehmen kann. Dann ist aber die Bedingung
      Code:
      sizeof(primzahlen) < 999
      nie erfüllt (da sizeof(char) == 1 und sizeof(int) >= sizeof(char) ist), also wird der Schleifenrumpf nie ausgeführt.
      Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

      Kommentar


      • #4
        Ist der im ersten Beitrag gepostete Code C++?

        Kommentar


        • #5
          Jop, wieso?
          http://hallophp.de

          Kommentar


          • #6
            Ich habe ihn mir immer um einige schwerer vorgestellt, dass schaut ja fast aus wie php :O

            LG Sonic

            Kommentar


            • #7
              Kein Wunder, da PHP eine C/C++ Syntax besitzt.
              Bis auf das dämliche "->" bei OOP :/

              Kommentar


              • #8
                Naaaaja da gibts schon paar mehr Unterschiede ...

                Kommentar


                • #9
                  Granvierende? Ich hab immer gehört das man erst mit VB dann mit C und zum Schluss erst C++ lernen soll, weil man sonst nix versteht *hmm*

                  LG sonic

                  Kommentar


                  • #10
                    Ich meinte die Unterschiede zwischen C und PHP ...

                    Kommentar


                    • #11
                      Zitat von Flor1an Beitrag anzeigen
                      Ich meinte die Unterschiede zwischen C und PHP ...
                      Ja,
                      aber ich wollt eig. wissen ob C dann so schwer ist, wenn man Php einigermaßen kann?

                      Kommentar


                      • #12
                        Naja die Syntax erlernen ist ein Kinderspiel, das kannst du auch ganz schnell mit Google immer nachschlagen oder der Editor vervollständigt deinen Code. Das größere Problem ist halt das C System nah arbeitet und ein paar andere "Konzepte" verfolgt als PHP. Zum Beispiel ist es in PHP wurscht wie, wann und wie oft du Variablen initialisierst. Es ist auch egal ob du sie irgendwann per unset() freigibst oder eben nicht. Bei C musst du bei jeder Variable selbst den Arbeitsspeicher allokieren und du musst ihn auch wieder freigeben. Und das ist dann nicht ganz so einfach. Arrays funktionieren auch etwas anders, es kann da leicht passieren das du über die Grenzen des Arrays hinaus gehst und dann unbekannte Speicherbereiche benutzt ...

                        Kommentar


                        • #13
                          Zitat von draco88 Beitrag anzeigen
                          Bis auf das dämliche "->" bei OOP :/
                          Na ja, der Punkt war halt schon vergeben, als Verkettungsoperator - deshalb mussten sie sich für den Eigenschaften-Zugriff was anderes einfallen lassen.

                          Kommentar


                          • #14
                            ist auch nicht so schwer, für diejenigen, die während der Ausbildung / Studium schon mal Pascal / Delphi gelernt haben ...
                            "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

                            Kommentar

                            Lädt...
                            X