От чего это, и как решить?
Глупостей в вопросе/коде написано - немеряно:
1. "От чего" -> Отчего
2. цикл for никогда не организуется по вещественным типам, а должен организовываться по
перечислимым типам ... главным образом вариантам int
3. ваш записанный цикл for - это неудачно записанный цикл while...
4. вещественные значения
никогда не должны сравниваться на равенство ... и уж никогда не должны быть критерием цикла while
5. все вещественные операции
приближённые, и условие x1 == x1+ dx, например, при определённых условиях может быть истинным: добавление к числу не будет его изменять (подумайте когда?)
Садись - два! ;-)