2

我正在创建一个函数来读取用户的输入,并将它们放入一个浮点数数组中,预定的固定大小为 25。它还返回用户输入的项目总数。但是,由于某种原因,当我输入 999 时,这段代码不会终止。我知道它是一个 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);

}
4

1 回答 1

6

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

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