0

ユーザーが整数のリストを入力すると、その数値の最初と最後のエントリの位置と、その特定の数値が表示される回数を見つけるプログラムを作成する必要があります。

適切な出力は次のようになります。

Enter a number to find: 4
Enter a list of numbers (negative to quit): 1 8 4 9 3 4 4 8 2 4 10 3 4 2 4 -1
This list contains 15 numbers.
First occurrence of '4': 3
Last occurrence of '4': 15
Quite a few were found!

次のように、すべての数字を1行に入れるのではなく、scanfを使用して毎回ユーザー入力を取り込むため、1つのことを除いてうまく機能しています。

1 8 4 9 3 4 4 8 2 4 10 3 4 2 4 -1

それはこれを行います:

1
8
4
9
3
4
4

各エントリで新しい行を開始しないようにする方法はありますか?

4

1 に答える 1

1

ええ、フォーマット文字列で使用する\nprintf、改行されます。そこにそのキャラクターがいない場合は、そうではありません。したがって、それを取り出して、ループの後に新しい行を書きます。

同様に、プロンプトで数字を入力するときは、入力するたびにエンターを押さないでください。スペースで区切って入力する必要があるようです。

入力と同じ行にプロンプ​​ト テキストを表示する場合は、出力もフラッシュする必要がある場合があります。

printf( "Enter a list of numbers (negative to quit): " );
fflush( stdout );

// Input loop.
int num;
do {
    if( 1 != scanf( "%d", &num ) ) {
        fprintf( stderr, "Bad input\n" );
        exit(1);
    }

    // Do something with the input...

} while( num != -1 );
于 2013-02-07T01:00:34.237 に答える