2

ユーザーからの入力を読み取り、事前に決められた固定サイズ 25 の数値の浮動小数点配列に入力する関数を作成しています。また、ユーザーが入力した項目の合計数も返します。しかし、何らかの理由で、このコードは 999 を入力しても終了しません。これが int で入力が float であることはわかっていますが、これを修正する方法がよくわかりません (C しか学習していません)。 5日間)。

int readArray(float a[]){
    //accepts inputs and puts items in a predefined array of size 25    
    int index = 0;
    float input;
    printf("Enter 25 or less elements for array (999 to finish):\n");

    scanf("%d", &input);  //accept initial response; priming prompt
    printf("1st Prompt accepted");

    while (input != 999 && index < 25) {
        printf("In while loop");

        a[index] = input;
        index++;
        scanf("%d", &input);
    }
    return (index);

}
4

1 に答える 1

6

ここでは、適切なフォーマット指定子が非常に重要です。フロートの場合は%fそうscanf()です。

scanf("%f", &input);
于 2013-04-28T03:02:49.133 に答える