Prezado Jarlisson,
Funcionou!! OBRIGADÃO!!! Na verdade, conversando com o professor em aula e comparando o que voce escreveu, localizei outro erro meu:
Veja como escrevi: while ((n1!=0 && n1%2=0) && (n2!=0 && n2%2=0))
Agora, como você escreveu: while( (n1!=0 && n2 !=0) && (n1 %2 ==0 && n2 %2== 0) )
Tirando o fato que você agrupou os testes em categorias (1a, se é diferente de zero, 2a, se MOD de n1/n2 é igual a zero), o que tornou o codigo mais "legível", meu erro foi inserir "=" no ligar de "=="; ou seja, eu tentei(??!) insanamente atribuir um valor à variável!! Coisa de iniciante, né, não ia dar certo nunca.
Agora, com relação ao que você disse ("O usuário nem entrou com os dados ainda e você já fez esse teste! (...) Primeiro faça os scanf, só depois teste no while."), algo eu não entendi: aprendi (comparativamente ao Pascal) que o teste logico do while precisa obrigatoriamente estar dentro das chaves ("{}"), que vêm após o while; portanto, não haveria como pedir ao usuário, ANTES do while, os dados para analise. O que poderia, isso sim - e nisso sua explicação foi muito útil - é atribuir um valor inicial bem específico para as variáveis, eliminando o "efeito lixo". Acho que é isso o que você quis dizer, creio.
De qualquer forma, foi resolvido o caso, pelo que, lhe agradeço muitissimo, e agradeço o excelente espaço desse fórum, que é indispensável.
Os moderadores marcam o topico como resolvido, ou eu tenho que fazer algo?
Abração!