Wie Programmiere ich eine Schleife um den scanf in C?

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.