jueves, 26 de abril de 2012

Sumar las filas y columnas de una matriz en Lenguaje C

El ejercicio consiste en realizar una matriz de 5x4 elementos y sumar fila por fila y columna por columna, guardando los resultados en dos vectores, uno vertical para las filas, y otro horizontal para las columnas.

Ejemplo:

    MATRIZ       RESULTADO FILAS

5  6  7  2  3    23
4  2  1  0  6    13
3  2  7  6  5    23
7  8  5  2  1    23

19 18 20 10 15 <<-- RESULTADO COLUMNAS




int main()
{

int matriz[4][5];
int horizontal[5];
int vertical[4];
int fila,columna;
int suma=0;
int i;


/*Bucle que registra los numeros introducidos de teclado*/
for(fila=0;fila<4;fila++)
{
    for(columna=0;columna<5;columna++)
    {
        printf("Introduce un numero para la posicion %d,%d: ",fila,columna);
        scanf("%d",&matriz[fila][columna]);
    }
}

/*Bucle que suma las filas y registra el resultado en el vector vertical*/
for(fila=0;fila<4;fila++)
{
    suma=0;
    for(columna=0;columna<5;columna++)
    {
        suma+=matriz[fila][columna];
    }
    vertical[fila]=suma;
}

/*Recorre el vector vertical y muestra los resultados*/
for(i=0;i<4;i++)
{
    printf("%d\n",vertical[i]);
}

/*Bucle que suma las columnas y registra el resultado en el vector horizontal*/
for(columna=0;columna<5;columna++)
{
    suma=0;
    for(fila=0;fila<4;fila++)
    {
        suma+=matriz[fila][columna];
    }
    horizontal[columna]=suma;
}

/*Recorre el vector horizontal y muestra los resultados*/
for(i=0;i<5;i++)
{
    printf("%d",horizontal[i]);
}
system("PAUSE");
}

14 comentarios:

  1. Hola saludos, muy buena tu explicacion, no obstante yo he tratado de hacer lo mismo con este ejercicio y aun asi no me resulta, no logro ver ke me hace falta. Si me pudieran ayudar se los agradezco.


    //Ejercicio: llenar dos matrices de 4*2, sumar las posiciones de cada fila y llenar un
    //vector, luego mostrar el vector resultante.

    #include

    using namespace std;

    int main(int argc, char *argv[])
    {
    int j,k,i, matrizA[4][2], matrizB[4][2], arraySuma[8], suma=0;

    cout<<"\n\nCARGA DE DATOS PARA LA MATRIZ A"<>matrizA[j][k];
    }
    }
    cout<<"CARGA DE DATOS PARA LA MATRIZ B"<>matrizB[j][k];
    }
    }
    arraySuma[i]=0;
    for(j=0;j<4;j++)
    {
    for(k=0;k<2;k++)
    {
    arraySuma[i]+=matrizA[j][k];
    }
    }
    for(j=0;j<4;j++)
    {
    for(k=0;k<2;k++)
    {
    arraySuma[i]+=matrizB[j][k];
    }
    }
    cout<<"\n\n\n\tEL VECTOR RESULTANTE ES: "<<endl;
    for(i=0;i<8;i++)
    {
    cout<<"\n\t"<<arraySuma[i]<<" "<<endl;
    cout<<endl;
    }
    system("PAUSE");
    }//fin del algoritmo.

    ResponderEliminar
  2. gracias enserio gracias por el ejercicio, me sirvio de mucho

    ResponderEliminar
  3. hola disculpa el ejercicio funciona solo que tengo una incognita, cuando le pongo suma=0 despues del for(fila=0;fila<4;fila++) me calcula muy bien las sumas de las filas, pero si le quito el suma=0 mal porque salen otros resultados, aun cuando la variable suma=0 ya la declare al principio, no entiendo???

    ResponderEliminar
  4. #include
    #include
    int main ()
    {
    int numeros [5][5],i,j,col,fil;
    int contador=1;

    for (i=0;i<5;i++){
    for (j=0;j<5;j++){
    numeros [i][j]=contador;
    contador ++;
    }}
    for(i=0;i<5;i++){
    fil=0;
    for(j=0;j<5;j++){
    fil+=numeros[i][j];
    printf ("%d\t",numeros[i][j]);
    if(j==4)
    {
    printf ("El resultado de la suma es: %d\t",fil);
    }}

    printf ("\n\n");
    }
    getch ();
    }

    ResponderEliminar
    Respuestas
    1. muy bueno solo que lo que yo necesito es que la matriz sea de 3x3 y que me sume las filas pero tambien las columnas. que es lo que le faltaria a este programa.

      gracias!!

      Eliminar
  5. me ayudan con esta
    Considerando que existe una matriz de 4x4, llena de números enteros, Ud debe crear las
    funciones que permitan calcular e imprimir, la suma de:
    a. Diagonal principal.
    b. Diagonal secundaria.
    c. La primera y última fila.
    d. La primera y última columna.

    ResponderEliminar
  6. oie me puedes ayudar a realizar un programa algo dificil realizar un sistema de ecuaciones de suma, resta,multiplicacion,traspuesta,adjunta,inversa,divicion,determinantes...con ciclo for y cout..

    ResponderEliminar
  7. nesecito uno de 4 filas y 3 columna
    hallar
    -lasuma de la ultima columna
    -la suma de la ultima fila

    ResponderEliminar
  8. Hola oye me podrías ayudar con un programa para calcular resistencias en serie y en paralelo, porfa.
    O me podrías decir como hacerle; o darme una idea por favor :D

    ResponderEliminar
  9. Hola, muchas gracias por el aporte. Lo único, es como seria para implementar este programa con la Suma de los elementos de las columnas impares. R Imprimir los elementos A (2,3) y A (3,2).
    PD: Para cambiar los valores de la matriz, simplemente:

    int tabla [4][5] y los números que tenemos entre corchetes son los que nos dicen alto y ancho por decirlo. Si queremos otra matriz solo tenemos que cambiar estos números.

    Gracias de antemano.

    ResponderEliminar
  10. quien me ayuda con una matriz de 3*3 que sume la diagonal principal, cuente cuantos pares hay en la diagonal secundaria y cuantos son impares y debe realizar un menú portada de presentación

    ResponderEliminar