You have to head to Cianwood City to get the medicine for the Ampharos in Olivine city, and while you're there, you should pick up the Gym Badge too. You'll get something very cool if you win. Crush the boulders near the top of the city to find some interesting stuff.
Get Jasmine's medicine
The pharmacist in the small building at the bottom will give you the Secret Potion that Jasmine needs. If you then leave and come back, he'll start selling a small selection of normal medicines, including the handy, space-saving Full Heal, which can cure any status condition.
Give Shuckle a good home
The guy in the center house is so concerned about his Pokémon being stolen that he'll give it to you for safe-keeping. It's a Shuckle named Shuckie, and as long as you keep it happy (and as long as you have an empty slot in your party, because it won't get sent to your PC if your party's full), it's yours to keep.
The Pokémon Photographer
If you have a Game Boy Printer, the guy in the house directly above the Gym will be happy to take free photos of your Pokémon. The printed versions show the Pokémon's picture, its moves, and all of its stats.
Acquiring HM02 Fly
Talk to the lady outside Cianwood Gym. She is the Gym Leader's wife and you'll find she thinks her husband is spending too much time at the gym. Once you clear the Gym and beat Chuck, talk to her and she gives you a very valuable item: HM 02 (Fly). Fly allows you to visit any city you've previously been to, including Olivine, which saves you the entire trip back by sea.
Gym Battle 5: CHUCK
|Black Belt Yoshi: 648
|Black Belt Lao: 648
|Black Belt Nob: 600|
|Black Belt Lung: 600|
|Leader Chuck: 3000|
You need to use Strength, which the sailor in Olivine City gave you, to make it to the Gym Leader battle. Push the two outside boulders up, and then push the middle boulder to either side.
All of the Pokémon in this Gym are Fighting-type, but there's no simple trick to getting through it. Most of the fighters have non-Fighting type attacks to take care of Ghost Pokémon, so pack your roster mainly with quick Psychics (who can get a K.O. before they're flattened by the counterattack) and tough Flyers (especially ones with Flying attacks).
Try to knock out Chuck's Poliwrath early, before it attacks with Dynamic Punch, which will almost certainly confuse your Pokémon. After defeating Chuck, you get the Storm Badge, which enables you to control Pokémon up to level 70 and use Fly outside of battle, and he also gives you TM 01 which contains Dynamic Punch, a move that hits only 50% of the time, but confuses the enemy every time it hits.
To counter most of Chuck's Pokémon, you may want to use Attract which significantly lowers the chance that he's going to hit you with Dynamic Punch.