From 27dabccef1bbff5f0ee023ff3f31b5c04cd66807 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 1 May 2025 15:22:47 +0200 Subject: [PATCH] 27.3 --- primza.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/primza.c b/primza.c index 61fe465..bf6fd65 100644 --- a/primza.c +++ b/primza.c @@ -4,24 +4,26 @@ int main() { int eingabe; - int *zahlenBisN = (int *)malloc(100 * sizeof(int)); + int *zahlenBisN = (int *)malloc(100 * sizeof(int)); // Speicher wird dynamisch für 100 Zeichen reserviert do { printf("%s", "Bis wohin sollen die Primzahlen berechnet werden (Ende=0) ? "); scanf("%d", &eingabe); - if(eingabe > 100) + if(eingabe > 100) // Wenn mehr Speicher benötigt wird, dann wird mit realloc mehr speicher reserviert { - free(zahlenBisN); + free(zahlenBisN); // Der Speicher von der default reservierung wird freigegeben, damit er erneut reserviert werden kann zahlenBisN = (int *)realloc(zahlenBisN, eingabe * sizeof(int)); } + // Array wird mit zahlen von 1 bis n gefüllt for (int i = 0; i < eingabe; ++i) { zahlenBisN[i] = i+1; } + // Jede nicht Primzahl wird entfernt for (int i = 0; i < eingabe; ++i) { for (int j = 2; j < i; j++ ) { @@ -32,6 +34,7 @@ int main() } } + // Alle zahlen die noch im String vorhanden sind und nicht 0 sind werden ausgegeben for (int i = 1; i < eingabe; ++i) { if(zahlenBisN[i] != 0) @@ -40,6 +43,6 @@ int main() } } printf("\n"); - }while(eingabe != 0); - free(zahlenBisN); + }while(eingabe != 0); // Das Programm wird so oft wiederholt bis 0 eingegeben wird + free(zahlenBisN); // Speicher wird erneut freigegeben um Memory leaks zu verhindern } \ No newline at end of file