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". 🙂 😃


Anmelden zum Antworten