Final answer:
Hannibal was defeated in Italy due to logistical challenges, the failure of Roman allies to defect to his side, and the effective counter-strategies developed by Roman generals like Scipio Africanus.
Step-by-step explanation:
Reasons for Hannibal's Defeat in Italy
Three primary reasons account for Hannibal's defeat in Italy. First, logistics and supply issues plagued his army, as maintaining a large force over an extended period far from Carthaginian bases was challenging. Second, Hannibal's strategy relied heavily on the hope that Roman allies would defect to his cause after initial victories, but this largely did not materialize. And third, the adaptation of Roman tactics and their leaders', like Scipio Africanus, ability to learn from previous defeats and effectively counter Hannibal's strategies diminished his advantages.