Wie Programmiere ich eine Schleife um den scanf in C?
Hallo, ich habe einen Programm geschrieben mit den man auswerten kann, welche Zahlen Primzahlen sind. Nur habe ich jetzt das Problem das ich jeweils nur eine Zahl eingeben kann. Wie schaff ich es jetzt, dass ich nach Eingabe einer Zahl und und betätigen von Enter, wieder die Aufforderung "Please enter a number ;" bekomme und ich so eine weitere Zahl eintippen kann ohne andauernd das Programm neu zu starten? Ich vermute das man eine Schleife um printf und scanf programmieren muss? Nur bin ich hier grad überfragt bzw. weis nicht wie ich es anstellen soll.
2 Antworten
Ausgehend von deinem Code könntest du es so machen:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
int number;
while(1)
{
printf("Please enter a number: ");
scanf("%d", &number);
if(number < 2)
return EXIT_SUCCESS;
for(i = 2; i*i <= number; i++)
if(number % i == 0)
{
printf("The number is not a prime number\n");
i = 0;
break;
}
if(i > 0)
printf("The number is a prime number\n");
}
}
Eleganter wäre es, die For-Schleife in eine eigene Funktion auszulagern, die zurückgibt, ob es eine Primzahl ist oder nicht.
while (true)
{
printf(...)
...
}
return EXIT_SUCCESS;
Das würde dann unendlich oft nachfragen. Das Programm kannst du dann mit Ctrl-C beenden.