For targets that have multiple types, the type effectiveness of a move is the product of its effectiveness against each of the types:
If the type of a move is super effective against both of the opponent's types (such as Dig, a Ground-type move, used against an Aggron, a Steel/Rock Pokémon), then the move does 4 times the damage;
If the type of a move is not very effective against both of the opponent's types (such as Wake-Up Slap, a Fighting-type move, used against a Sigilyph, a Psychic/Flying Pokémon), then the move only does ¼ of the damage;
If the type of a move is super effective against one of the opponent's types but not very effective against the other (such as Razor Leaf, a Grass-type move, used against a Gyarados, a Water/Flying Pokémon), then the move deals regular damage;
If the type of move is completely ineffective against one of the opponent's types, then the move does no damage, even if the opponent has a second type that would be vulnerable to it (as in Thunderbolt, an Electric-type move, used against a Quagsire, a Water/Ground Pokémon).
source
So only moves can be effective against Pokemon. Pokemon are not effective against each other. Your Arctozolt's electric attacks are 4* effective against Gyarados, and ice attacks are 1* effective against Gyarados.
Also this site uses something called Markdown for questions and answers (not comments). So if you type multiplication symbols, then Markdown might think you want italic text. You need backslashes to properly display multiplication symbols.
Typing "*these are multiplications*" displays "these are multiplications".
Typing "\*these are multiplications\*" displays "*these are multiplications*".
Typing "\\\*these are multiplications\\\*" displays "\*these are multiplications\*".