2017-02-12 10 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

ペダンティックであることを嫌うが、0038のように0で詰めた数字を入力すると失敗する。 – 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

良いコードは 'n 'を使う前に' scanf( "%d"、&n); ')の戻り値をチェックする。 ( "%d"、&n)!= 1)Print_Error_and_Exit() ' – chux

+0

@chux nice、thanks! – faviouz

+1

ニースコード1+、完全性のために変更する 'return 0;' return EXIT_SUCCESS; ' – alk

関連する問題