Instructions
Capture an Electric-type Pokemon such as Pikachu or Jolteon and train it to Level 50. Teach Electric-type moves such as Thunderbolt and Thunder Punch to the Pokemon. Because Gyarados is a Water/Flying-type Pokemon, Electric-type moves are super-effective against it.
Obtain a Rock-type Pokemon, such as Graveler or Probopass. Train it to level 50 and make it learn Rock-type moves such as Magnitude and Rock Slide. Gyarados is weak against Rock-type moves because it is a Flying-type.
Increase your two Pokemon's Attack stats by EV Training. Gyarados has a below-average Defense stat, so exploit that by improving your Attack stat. Equip both Pokemon with a Power Bracer.
Make each Pokemon fight 63 Kricketune and Bibarel on Route 212 to gain 252 Attack EVs. The Electric-type and the Rock-type Pokemon will get an extra 63 Attack stat points by the time they reach Level 100. They will gain these extra stat points gradually.
Use Electric-type and Rock-type moves on the Gyarados. Use a move to inflict a status ailment such as Poison or Burn on the Gyarados, which will slowly deplete its hitpoints. Because your Pokemon now have high Attack stats, you will defeat the Gyarados within a few turns.