2017-02-12 2 views
-5

Я новичок в C и имею базовую программу, которая запрашивает у пользователя число, а затем печатает это число вместе с диапазоном, например, таким образом 1-49.Как закончить цикл с помощью 0?

+3

Было бы гораздо более ясным, если вы вывесили свой код. Кроме того, какой диапазон? Если я введу '7', то что именно должна делать ваша программа? – asimes

+1

Если вы разместили 7, он напечатает 7 и распечатает другое заявление, чтобы показать, что оно находится в диапазоне 1-49. (Идет до 100, если пользователь вводит большее число, они получают оператор, и программа запрашивает другое число.) –

+3

Поместите свой код для получения своего номера и ответа с сообщением в бесконечном цикле. Когда они вводят «0» разрыв цикла или выходят из программы – asimes

ответ

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

Ненависть быть педантичной, но это не удастся, если вы введете 0-заполненное число, например 00384. – 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

Хороший код проверяет возвращаемое значение 'scanf ("% d ", &n);' перед использованием 'n'. Пример:' if scanf («% d», & n)! = 1) Print_Error_and_Exit() ' – chux

+0

@chux приятно, спасибо! – faviouz

+1

Хороший код 1+, все еще для полноты изменения 'return 0;' to 'return EXIT_SUCCESS;' – alk

Смежные вопросы