我正在创建一个函数来读取用户的输入并将它们放入具有预定修复大小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);
}
答案 0 :(得分:6)
正确的格式说明符在这里非常重要。对于浮点数,它是%f
。所以将scanf()
更改为
scanf("%f", &input);