scanf требует больше входных данных, чем запрошено

Я пытаюсь получить 5 значений float от пользователя с помощью scanf, проблема заключается в том, что пользователю требуется ввести 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

вы должны удалить \ n в функции 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", &numbers[i]); printf("number %i is %f \n",i,numbers[i]); } printf("Done!"); return 0; } 

scanf("%f\n", &numbers[i]); должен быть scanf("%f", &numbers[i]);