Вопрос "Почему?" задают, когда хотят узнать о причинах чего-либо (например, о причинах какого-то являния или поступка).
"Зачем?" - спрашивают, когда хотят узнать о цели.
Например.
- Почему ты надел шапку?
- Потому что мне холодно.
- Зачем ты надел шапку?
- Хочу согреться.
Можно спросить: " Почему идет дождь?", но нельзя: "Зачем идет дождь?"
Иногда "почему" и "зачем" имеет почти одинаковый смысл. Например, можно спросить: "Почему вы изучаете русский язык?" и "Зачем вы изучаете русский язык?" - смысл примерно одинаковый.