Solo una puntualización acotada...
- Tienes un montón de variables que sobran, puedes reusar una para varias cosas o incluir en el cout la operación cuando no vayas a reusar una variable más.
Es muy mala práctica reusar variables, salvo ciertos casos.
Si se tiene una función con varios bucles uno tras otro, no hay problema alguno en reusar la variable que actúa de contador, pués ese es su propósito.
En cambio si tienes una variable como 'mes' definida por ejemplo como entero, que más adelante no la precises y la reutilices, solo enfanga el código... si tiempo más tarde tienes que revisarlo, podrías encontrarte con que 'mes = -3147', cuando su nombre sugiere que esté acotado en un valor 1-12 (por ejemplo).
En fin, ahorrar algunos bytes de memoria (hace 30-40 años tenía cierta validez, por la escasez de memoria, y aún así se desaconsejaba), lo más probable es que a futuro te malgaste tiempo (que es mucho más preciosos que algunos bytes sueltos) si se convierte en una práctica habitual, tratando de comprender que hace tal o cual variable aquí o allá y porque tiene valores dispares. Si cada variable es nombrada conforme a su propósito y no reutilizada fuera de dicho propósito, el código será siempre fácil de seguir o por lo menos no inducirá a errores, aunque pasen algunos años sin tocarlo...