You have to learn it at the Platinum/HeartGold/SoulSilver Move Tutors.
Chat with our AI personalities
Since it's a fighting/psychic It should kind of be like this Sword dance Psycho cut Close combat Ice punch/stone edge *DO NOT TEACH IT SPECIAL ATTACK IT WILL BE USELESS!!*
Feraligatr cannot learn Ice Punch naturally however a Move Tutor can teach Feraligatr Ice Punch in "Pokémon Platinum," "Pokémon HeartGold" and "Pokémon SoulSilver."
Medicham can't naturally learn Ice Punch upon leveling up. But there are other methods. Here are 3 ways: 1: Give a Heart Scale to the Move Tutor in Pastoria and he'll teach it Ice Punch. 2: Trade in Colored Shards to other Move Tutors and they'll teach it Ice Punch. 3: Breed a Male Human-like Pokemon that knows Ice Punch, with a Female Medicham, and the Meditite babies will automatically know Ice Punch upon hatching.
You must go to the Frontier Front and talk to a man inside a house. He will offer to teach feraligatr ice punch, but for 64 B.P.
The way a Weavile can learn Ice Punch is probably if you teach it. Ice Punch isn't a TM so you have to go to Pastoria City and talk to the Move Teacher guy. You have to give him a heart scale in return( you can find heart scales underground).