Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
#include <iostream> #include <list> // für Sleep() #include <windows.h> using namespace std; // Prototyp (en) // wozu ein bool als 2. Parameter? bool prime_generator (int tester); // Variablen list <int>lZahlen; //enthält anfänglich alle Primzahlenkandidaten, später werden alle falschen gelöscht list <int>::iterator k; int test; int Anzahl =0; // bool isprim; auskommentiert, in main() neu erstellt // Hauptprogramm int main () { // keine unnötigen globalen Variablem bool isprim = false; cout << "Bis zu welcher Zahl sollen die Primzahlen ermittelt werden? (höchstens bis 999999) "; cin >> Anzahl; // 0 ist keine Primzahl for (int i=1; i<= Anzahl; i++) { lZahlen.push_back (i); } cout << "Primzahlen werden ermittelt....."; // lZahlen.begin() und .end() gibt einen Iterator zurück! Funktionsaufrufe sollten mit Klammern () versehen werden for ( k=lZahlen.begin(); k != lZahlen.end(); k++ ) { // der Rückgabewert der Funktion wird in isprim gespeichert isprim = prime_generator (*k); // was keine Primzahl ist kommt raus if (!isprim) { // .erase() erwartet einen Iterator und gibt einen neuen Iterator zurück k = lZahlen.erase(k); // k ist leider einen Schritt zu weit... k--; // break; wenn du gleich abbrichst is klar, dass es nix wird } } cout <<"Fertig!"<< endl; cout << "Folgende Zahlen von 1 bis" << Anzahl; cout << "sind Primzahlen:"<< endl; for ( k=lZahlen.begin (); k!=lZahlen.end (); k++) { cout << *k << ","; } cout <<endl<< "Es sind insgesamt genau " << static_cast <int> (lZahlen.size()); cout << " Primzahlen"<< endl; // auf Enter warten Sleep(100); fflush(stdin); cin.get(); return 0; } // prime_generator // bool prime_generator (int tester) { // wozu eine for-Schleife hier? //for(int i=tester; ; ) // j<= statt j< for(int j=2; j<=tester/2; ++j) { // direkt false zurückgeben... falls tester keine Primzahl ist if(tester%j == 0) { return false; } } // true, wenn tester eine Primzahl ist. return true; } |
Werbeanzeige