Pide memoria explicita, por ejemplo
int arreglo[10]; <-- 10 enteros
esto esta mal:
int arreglo
- ; <--- cuantos elementos tiene este arreglo?
Para C / C++ tienes siempre que especificar el tamano de los arreglos cuando los defines.
No es necesario cuando luego los usas (los recorres). En ese momento tienes que recordar que los indices validos van de 0 hasta el valor que pusiste en tu definicion - 1.
Osea para este arreglo:
int arreglo[10];
los indices validos van de 0 a 9.
hacer un ciclo asi:
for( i = 1; i <= 10; i++ ) arreglo
= ..
tiene el inconveniente que cuando i vale 10, arreglo[10] no existe, (recuerdas que los indices van de 0 a 9?)
Tu programa esta lleno de estos errores.
Los corrijes y el programa se comportara mejor.