2017-02-12 8 views
-5

Ich bin neu in C und habe ein Basisprogramm, das den Benutzer nach einer Nummer fragt und dann diese Nummer zusammen mit dem Bereich ausgibt, in dem es sich beispielsweise befindet.Wie man eine Schleife mit 0 beendet?

+3

Es wäre viel mehr klar sein, wenn Sie Ihren Code geschrieben. Auch, welche Reichweite? Wenn ich '7' eingebe, was genau soll dann dein Programm tun? – asimes

+1

Wenn Sie 7 gepostet haben, würde 7 gedruckt und eine andere Anweisung gedruckt, um anzuzeigen, dass es im Bereich 1-49 liegt. (Geht auf 100, wenn der Benutzer eine größere Zahl eingibt, erhalten sie eine Anweisung und das Programm fragt nach einer anderen Nummer.) –

+3

Setzen Sie Ihren Code, um ihre Nummer zu erhalten und mit einer Nachricht innerhalb einer Endlosschleife zu antworten. Wenn sie eine '0' eingeben brechen Sie die Schleife oder beenden Sie das Programm – asimes

Antwort

1
#include <stdio.h> 

int main() { 
    for (;;) { 
     printf("Enter a number: "); 

     char buf[10]; 
     fgets(buf, 10, stdin); 
     printf("You entered %s\n", buf); 

     // Code for displaying the range 

     if (buf[0] == '0') 
      break; 
    } 

    printf("Outside the loop\n"); 
    return 0; 
} 
+4

Hate pedantisch, aber dies wird fehlschlagen, wenn Sie eine 0-aufgefüllte Zahl wie 00384 eingeben. – faviouz

3
#include <stdlib.h> 
#include <stdio.h> 

int main(int argc, char **argv) 
{ 
    int n; 

    do { 
     // Read the number into n 
     printf("Enter a number: "); 
     if (scanf("%d", &n) != 1) { 
      perror("scanf"); 
      exit(EXIT_FAILURE); 
     } 

     // Check arbitrary condition 
     if (n >= 1 && n <= 49) { 
      printf("%d is in the range 1-49\n", n); 
     } 
    } while (n != 0); 

    return EXIT_SUCCESS; 
} 
+2

Guter Code überprüft den Rückgabewert von 'scanf ("% d ", &n);' vor der Verwendung von 'n'. Beispiel:' if scanf ("% d", & n)! = 1) Print_Error_and_Exit() ' – chux

+0

@chux nett, danke! – faviouz

+1

Nice code 1+, noch zur Vollständigkeit ändern 'return 0;' zu sein 'zurück EXIT_SUCCESS;' – alk

Verwandte Themen