C++ while-Schleife raubt mir den Nerv
Hi,
hab heute mal mit nem C++ Tutorial angefangen und war soweit auch ohne Probleme zumal ich das meiste ncoh aus der Schule von Java kannte. Jetzt bin aber bei einer Übung zu schleifen, bei der man die Primzahlen in den ersten 100 zahlen finden soll. Der main-Teil funktioniert auch soweit und arbeitet fehlerfrei mit einem Lösungsvorschlag für die "istPrim"-Funktion ausem Tutorial zusammen. Meine eigene Variante der Funktion scheint da aber wesentlich widerspenstiger zu sein. Ich bin mir auch sicher das es irgendwas banales ist, aber man kennt das ja
Hier mal der ausschnitt aus dem Tutorial (Volkards C++ Kurs):
Ich halt schonmal das "Kopf-gegen-Wand-schlag"-Smiley bereit und danke für jede Hilfe
mfg
Edit: ich arbeite mit visual c++, falls das von belang ist
Hi,
hab heute mal mit nem C++ Tutorial angefangen und war soweit auch ohne Probleme zumal ich das meiste ncoh aus der Schule von Java kannte. Jetzt bin aber bei einer Übung zu schleifen, bei der man die Primzahlen in den ersten 100 zahlen finden soll. Der main-Teil funktioniert auch soweit und arbeitet fehlerfrei mit einem Lösungsvorschlag für die "istPrim"-Funktion ausem Tutorial zusammen. Meine eigene Variante der Funktion scheint da aber wesentlich widerspenstiger zu sein. Ich bin mir auch sicher das es irgendwas banales ist, aber man kennt das ja

Hier mal der ausschnitt aus dem Tutorial (Volkards C++ Kurs):
Und hier mein Vorschlag:Jede natürliche Zahl läßt sich mindestens durch 1 und durch sich selbst ohne Rest teilen. Eine natürliche Zahl ist genau dann eine Primzahl, wenn sie außer diesen beiden Teilern keine anderen mehr hat. Die ersten Primzahlen sind: 2, 3, 5, 7, 11, 13, 17.
Schreiben Sie ein Programm, das die Primzahlen bis 100 ausgibt. Schreiben Sie dazu folgende Funktion:
Diese Funktion soll einfach alle Zahlen von 2 bis kandidat-1 als Teiler ausprobieren. Wenn der Primzahlenkandidat ohne Rest (verwenden Sie also den Modulo-Operator) durch den Teiler geteilt werden kann, dann ist es keine Primzahl. Wenn die Schleife ganz durchlaufen worden ist, ohne einen Teiler zu finden, dann ist es eine Primzahl. Überlegen Sie, ob Sie break oder continue einsetzen könnten!Code:bool istPrim(int kandidat)
Code:
#include <iostream.h>
bool istPrim(int kandidat)
{
int teiler=kandidat;
while(teiler>2);
{
teiler=teiler-1;
if(kandidat%teiler==0)
return false;
};
return true;
};
void main()
{
for(int kandidat=2;kandidat<=100;kandidat=kandidat+1)
{
if(istPrim(kandidat)==true)
cout<<kandidat<<" ist eine Primzahl."<<endl;
};
};
mfg
Edit: ich arbeite mit visual c++, falls das von belang ist
Zuletzt bearbeitet: