Não inicialize uma variável com um valor que você sabe que não vai usar. Se o valor da variável vai ser lido, faça a leitura imediatamente após a declaração.
Evite reusar variáveis auxiliares (aquelas que armazenam informação de controle da execução em oposição a armazenar informações do problema sendo resolvido) em parte diversas do código. É recomendável declarar as variáveis o mais tarde possível e nos comandos mais internos, para que as variáveis não possam ser usadas em outras partes. Uma exceção comum e aceitável é declarar variáveis fora das repetições em oposição a declarar dentro das repetições para produzir código mais rápido.
Ruim (inicialização seguida de leitura):
int a = 0, b = 0, c = 0;
cin >> a >> b;
Bom:
int a, b;
cin >> a >> b;
int c = 0;
No exemplo acima, as variáveis a e b ganham o valor 0 para imediatamente a seguir terem seus valores alterados. Em geral, declarar diversas variáveis numa mesma linha não é bom, porque dificulta a leitura da linha e dificulta a mudança de tipos no futuro. Duas variáveis que possuem o mesmo tipo algorítmico podem se beneficiar de serem declaradas juntas porque a mudança do tipo de uma delas incentiva a mudança do tipo da outra. Não confunda o tipo algorítmico (altura, peso, etc.) com o tipo da implementação (int, float, double, etc.); os tipos algorítmicos são característica do problema e dificilmente mudam enquanto que os tipos da implementação são uma visão do programador a respeito do como representar determinado tipo de informação naquela linguagem de programação.
Ruim (declaração seguida de valor inicial):
int var;
var = a * 2 + f(x);
Bom:
int var = a * 2 + f(x);
Ruim (muitas declarações seguidas de comandos):
float mi, cmi, mmi, ma, cma, mma, av, ideal, carro;
cin >> mi >> cmi >> mmi;
cin >> ma >> cma >> mma;
ideal = conversao(mi, cmi, mmi);
carro = conversao(ma, cma, mma);
Bom (declarações tão tarde quanto possível):
float mi, cmi, mmi;
cin >> mi >> cmi >> mmi;
float ma, cma, mma;
cin >> ma >> cma >> mma;
float ideal = conversao(mi, cmi, mmi);
float carro = conversao(ma, cma, mma);
Esta página é mantida por Bruno Schneider para a disciplina de IAlg