Dev - C++ - sumar elementos matriz

   
Vista:

sumar elementos matriz

Publicado por eva (2 intervenciones) el 09/09/2014 20:54:42
Hola a todos!

Soy nueva en el foro y también en ésto de la programación, y necesito ayuda con un ejercicio que creo que debe ser sencillo aunque yo no lo consigo.

Se trata de introducir una matriz de 3x3 y sumar sus elementos. Hasta ahora he conseguido que se sumen por columnas pero no todos los elementos juntos, y no consigo saber cuál es el error... Recalco que tengo MUY poca idea de programación, y estoy aprendiendo de forma autodidacta desde hace unas semanas....Ahi va el intento:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int matriz[3][3];
int suma;
int i,j;

for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("introduce un numero para la posicion %d,%d:",i,j);
scanf("%d",&matriz[i][j]);
}
}
for(i=0;i<3;i++)
{
suma=0;
for(j=0;j<3;j++)
{
suma=suma+matriz[i][j];
}
}
for(i=0;i<3;i++)
{
printf("%d\n",suma);
}
system("pause");
}


Muchas gracias de antemano :D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de vangodp

sumar elementos matriz

Publicado por vangodp (287 intervenciones) el 10/09/2014 02:40:24
si lo que quieres es mostrar el resultado de suma no tienes por que usar un bucle...es solo imprimir la variable suma que contiene el valor de sumar todas las posiciones de la tabla.

Otro error es poner suma = 0; dentro del bucle que hace la suma por que seria como hacer eso:
1º repetición bucle externo
-entramos en el bucle for que suma
-la variable suma se pone a cero
-guardamos en la variable suma el resultado de sumar matriz[0][0] + matriz[0][1] + matriz[0][2]

3º repetición bucle externo
-luego se repite el bucle por segunda
-la variable suma se pone a cero // <- aquí esta el error. Al igual que la anterior linea eso hace que se pierda lo sumado anteriormente
-guardamos en la variable suma el resultado de sumar matriz[0][0] + matriz[1][1] + matriz[2][2] // de nada sirve sumar si después le voy a poner la variable donde guardo el resultado a cero.

3º repeticion bucle externo
ocurre lo mismo...desechamos lo anterior sumado cuando ponemos suma a cero

y lo único que se va sumar son las ultimas 3 posiciones de la matriz. Como ya no re repite mas pues esos ultimos 3 números son los que se suman y ya no los ceras mas.

En fin... eso se arregla poniendo suma a cero antes del bucle y no dentro.

te dejo un ejemplo funcionando.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
 
int main() {
    //no voy a pedir los numeros con un bucle, sino que entro resultados fijos(mas rapido asi XD)
    int matriz[3][3] = {{10, 10, 10}, {10, 10, 10}, {10, 10, 10}};
    int suma;
    int i, j;
 
    suma = 0;//  Suma va aqui...
 
    for ( i = 0; i < 3; i++ ) {
        //suma = 0; no debe poner suma dentro del bucle o a cada pasada va perder lo que contiene suma
 
        for ( j = 0; j < 3; j++ ) {
            suma = suma + matriz[i][j];
        }
    }
 
 
    printf ( "%d\n", suma ); // se muestra solo la variable suma por lo que no hace falta otro bucle
 
    //debe de mostrar 90 para que sea correcto ;)
 
    system ( "pause" );
}

Espero que te sirva ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

sumar elementos matriz

Publicado por eva (2 intervenciones) el 10/09/2014 09:42:44
Hola vangodp
Muchiiiiiiisimas gracias, ya me funciona a la perfección :D
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de vangodp

sumar elementos matriz

Publicado por vangodp (287 intervenciones) el 10/09/2014 13:22:27
No hay de que.
No hay nada malo aprender por cuenta... yo lo hago ;)
Cuando tenga una duda pon el lenguaje en el titulo. Supuse que era c por tu código, pero si haces una pregunta y no pones código alguno, especificar el lenguaje te puede ayudar a que sea mas rápido tu respuesta ;).

Veo que aprendes C, no hay nada malo en ello. Te propongo que veas una pagina de C++ básico aquí: http://v1.minidosis.org/C++/
El explica mucho sobre C++ y C también. A mi me servio mucho en mis inicios.
No olvidemos que C++ parte de C y mucha cosa es igual. Puede que te guste ambos =)
Foros elhacker.net y forosdelweb esta muy bien también, junto a este para aclarar dudas.
http://foro.elhacker.net/programacion_cc-b49.0/
http://www.forosdelweb.com/f96/

Paciencia con los foros... ni siempre la respuesta viene al instante, suelen ser bastante rápidos, pero as veces hay de esos días "vagos" que no queremos hacer nada jajaja. Aun así son el mejor lugar para quitar dudas.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar