读取具有浮点数的数组(C编程语言)

Jar*_*red 2 c arrays floating-point numbers

我正在创建一个函数来读取用户的输入并将它们放入一个预定定位大小为25的浮点数字数组中.它还返回用户输入的项目总数.但是,由于某些原因,当我输入999时,这段代码不会终止.我知道它与int有关,它是一个int,输入是一个浮点数,但我真的不知道如何修复它(只是学习C五天).

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);

}
Run Code Online (Sandbox Code Playgroud)

Rüp*_*ure 6

正确的格式说明符在这里很重要%f.对于浮动它是.所以改变你scanf()

scanf("%f", &input);
Run Code Online (Sandbox Code Playgroud)

  • 对于downvoter,我敢用C语言使用`%d`格式说明符接受`scanf()`来接受`float`数字.请告诉我如何使用`%d`来表示`floats`并且我会放弃C并前往阿富汗并在那里种植罂粟. (5认同)