Warum stürzt das denn ab?(kurzer code)
-
wenn ich hier grosse zahlen eingebe, dann stürtzt es ab?!?
#include <stdio.h> #include <string.h> int qs(int zahl){ return zahl?zahl%10+qs(zahl/10):0; } int lz(int zahl){ if(zahl<10) { return zahl; } float i = zahl; int zahlX = zahl/10; zahlX *= 10; return (i-zahlX); } int main() { int limit; bool isprim = false; bool *primReg; printf("Vermutete Primzahl angeben:\n"); scanf("%d",&limit); primReg = new bool[limit]; memset(primReg,1,limit); printf("suche nach Primzahlen zwischen 2 und %d\n",limit); for(int i = 3;i<limit;i++) { if(primReg[i] == true) { if(limit%i == 0) { printf("Teiler gefunden: %d\n",i); break; } int k = i; for(int y = 2; k<limit;y++) { k *= y; primReg[k] = false; } } if(i==limit-1) { isprim = true; } } if(isprim == true) { printf("%d ist eine Primzahl\n",limit); } main(); return 0; }
woran liegts? danke!
EDIT: sry leuts mit break gehts doch xD deswegen gleich ne andre frage
-
mit break
-
pixartist schrieb:
break geht ja nur bei case anweisungen...
Da hast du dich wohl verlesen.
-
ich habs!
danke
-
unsigned long limit; scanf("%lu",&limit);
Versuchs in jedem Fall mal mit passenden Datentypen, das verschiebt die
Problemetik des Überlaufs schon mal auf "später".