scanf需要比请求更多的输入

我正在尝试使用scanf从用户那里获得5个浮点值,问题是用户需要输入6个值才能完成程序。 虽然我知道我不应该使用scanf,但令我困扰的是,我无法理解它。 有关如何使用scanf修复它的任何见解,建议吗?

#include  #include  int main() { int i = 0 , j = 0; char buf[128] = {0}; float numbers[5] = {0.0}; float keep = 0.0; printf("Please input 5 numbers : \n"); for (i = 0; i < 5; i++) { scanf("%f\n", &numbers[i]); } printf("Done!"); 

谢谢,

MIIJ

你必须删除scanf()函数中的\ n

 #include  #include  int main() { int i = 0 , j = 0; char buf[128] = {0}; float numbers[5] = {0.0}; float keep = 0.0; printf("Please input 5 numbers : \n"); for (i = 0; i < 5; i++) { scanf("%f", &numbers[i]); printf("number %i is %f \n",i,numbers[i]); } printf("Done!"); return 0; } 

scanf("%f\n", &numbers[i]); 应该是scanf("%f", &numbers[i]);