[C con Clase] Necesito ayuda con este programa basico de C++ (Arrays)

Steven Davidson srd4121 en njit.edu
Dom Ago 14 12:06:25 CEST 2011


Hola Gonzalo,

2011/8/14 Gonzalo Uribe <neogonxy en gmail.com>:
> Hola, soy nuevo en esto y estoy intentado aprender C++ porque me han dicho
> que es el mejor lenguaje.
> El punto es que estoy en la parte de los arrays (recien empezando) y hay un
> ejercicio que dice lo siguiente:
>

Quiero recordarte que para el tema de los ejercicios, puedes
enviárnoslos a: ejercicioscpp en conclase.net  Así nosotros, los
creadores de la página, podremos analizar, corregir, y discutir sobre
los ejercicios que nos envíes, sin compartir tus programas con los
demás. De esta manera, se da la oportunidad a que cada uno haga los
ejercicios a su manera sin dejarse influir por los demás.

> Mision del programa:
> Hacer un programa que lea 25 valores enteros en una tabla
> de 5 por 5, y que después muestre la tabla y las sumas de cada
> fila y de cada columna. Procura que la salida sea clara, no
> te limites a los números obtenidos.
>
> El problema es que cuando le doy a compilar me da un resultado erroneo, como

Primeramente, cuando el compilador, enlazador, o el propio sistema
operativo te lanzan un mensaje de error (o de aviso), deberías darnos
tal mensaje, porque nos ayuda a averiguar cuál es el error y dónde
está: en qué línea del código fuente.

En segundo lugar, tengo que decirte que compilé tu código fuente y no
obtuve ningún error lingüístico, ni de enlazado, ni tampoco del
sistema operativo cuando lo ejecuté. Si nos dices el mensaje de error,
te podremos ser de mejor ayuda.

> podran ver en el codigo, no intento sumar las columnas, solo intento sumar
> una, pero aun asi no funciona. Alguien me podria ayudar y decirme en que
> estoy fallando, agradeceria mucho si alguien me mandara el ejercicio
> resuelto para entender bien como es.
>

Sin entrar en un análisis profundo del código fuente, puedo decirte
que tienes un error lógico al usar el array 'sumas', que actúa de
acumulador. El problema es que no asignas un valor inicial a cada
contador antes de las sumas. Recuerda que las variables locales no son
inicializadas implícitamente, por lo que contienen "basura": valores
desconocidos y potencialmente indeseados.

También tienes otro error al usar 'sumas' en los bucles 'for', porque
los índices que usas son 'c1' que va de 0 á 4. Por ejemplo,

for( int c1 = 0; c1 < 5; c1++ )
{
  ...
  sumas[c1][c2] += numero;
}

El problema es que 'sumas' es un array de 2 arrays y no de 5. Esto
significa que estás accediendo a variables fuera de los límites de
'sumas'. Esto puede provocar errores en tu programa y posiblemente
provoques un error captado por el sistema operativo.


Espero que esto te oriente.

Steven




Más información sobre la lista de distribución Cconclase