MATRICES EN C



Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar una matriz en C es similar a un vector:


Int matriz[F][C];

int es el tipo de dato, matriz es el nombre del todo el conjunto de datos y debo de especificar el numero de filas y columnas.
Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices en C se almacenan al igual que los vectores en posiciones consecutivas de memoria.
Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrás del otro juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subíndices que van en los corchetes.
Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera fila el valor 10.
No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz podemos usar igualmente un bucle. En este caso usando 2 for:






for(int i = 0; i < F; i++) {
for(int j = 0; j < C; j++) {
matrix[i][j] = i % j;
}
}


EJEMPLO

/* 
    SUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y 
    CADA COLUMNA 
*/
#include <stdio.h>
#include <conio.h>
#define TAM 3

void main()
{
int matriz[TAM+1][TAM+1],i,j;

clrscr();

// INICIALIZO
for(i=0;i<TAM+1;i++)
for(j=0;j<TAM+1;j++)
                 matriz[i][j] = 0;

        // INGRESO LOS DATOS 
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i,j);
scanf("%d",&matriz[i][j]);
}
printf("\n");
}

// MUESTRO LOS DATOS QUE INGRESE EN LA MATRIZ
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
printf("%d\t",matriz[i][j]);

printf("\n");
}

// ACUMULO EN LA ULTIMA POSICION DE LA MATRIZ
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
matriz[i][TAM]+= matriz[i][j];
matriz[TAM][j]+= matriz[i][j];
}
}
printf("\n");

// MUESTRO LAS SUMAS
for(i=0;i<TAM+1;i++)
        {
for(j=0;j<TAM+1;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
        }
        getch();
}

About the author

Andres
Deja tu comentario :

14 comentarios:

  1. Mejor borralo si no vas a dejar copiarlo

    ResponderBorrar
    Respuestas
    1. /*
      SUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y
      CADA COLUMNA
      */
      #include
      #include
      #define TAM 3

      void main()
      {
      int matriz[TAM+1][TAM+1],i,j;

      clrscr();

      // INICIALIZO
      for(i=0;i<TAM+1;i++)
      for(j=0;j<TAM+1;j++)
      matriz[i][j] = 0;

      // INGRESO LOS DATOS
      for(i=0;i<TAM;i++)
      {
      for(j=0;j<TAM;j++)
      {
      printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i,j);
      scanf("%d",&matriz[i][j]);
      }
      printf("\n");
      }

      // MUESTRO LOS DATOS QUE INGRESE EN LA MATRIZ
      for(i=0;i<TAM;i++)
      {
      for(j=0;j<TAM;j++)
      printf("%d\t",matriz[i][j]);

      printf("\n");
      }

      // ACUMULO EN LA ULTIMA POSICION DE LA MATRIZ
      for(i=0;i<TAM;i++)
      {
      for(j=0;j<TAM;j++)
      {
      matriz[i][TAM]+= matriz[i][j];
      matriz[TAM][j]+= matriz[i][j];
      }
      }
      printf("\n");

      // MUESTRO LAS SUMAS
      for(i=0;i<TAM+1;i++)
      {
      for(j=0;j<TAM+1;j++)
      printf("%d\t",matriz[i][j]);
      printf("\n");
      }
      getch();
      }

      Borrar
    2. jajaja no se como pero lo copie

      Borrar
  2. De que sirve que no dejes copiar el código?

    ResponderBorrar
  3. solo no les deja hacer segundo click copiar, usen cntrl+c

    ResponderBorrar
  4. gracias por el codigo, me sirvio mucho, para los que no puedan copiar usen ctrl + c

    ResponderBorrar
  5. para lo que no les compile el programa...


    prueven de esta manera:
    #include
    #include
    #define TAM 3

    int main(void)
    {
    int matriz[TAM+1][TAM+1],i,j;

    //clrscr();


    ResponderBorrar
  6. Si no les compila solo borren "clrscr();"

    ResponderBorrar
  7. lo modifique por si alguien quiere cambiar el tamaño de la matriz

    /*
    SUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y
    CADA COLUMNA
    */
    #include
    #include


    int main()
    {
    int i,j,fil,col;

    // CREO EL TAMAÑO DE LA MATRIZ

    printf("primero ingrese el tamaño de la matriz\n");

    printf("numero de filas:\t");

    scanf("%d",&fil); //numero de filas que tendra la matriz

    printf("numero de columnas:\t");

    scanf("%d",&col); //numero de colimnas que tendra la matriz

    int matriz[fil+1][col+1];

    // INICIALIZO
    for(i=0;i<fil+1;i++)
    {
    for(j=0;j<col+1;j++)
    {
    matriz[i][j] = 0;
    }
    }

    // INGRESO LOS DATOS
    for(i=0;i<fil;i++)
    {
    for(j=0;j<col;j++)
    {
    printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i,j);
    scanf("%d",&matriz[i][j]);
    }
    printf("\n");
    }

    // MUESTRO LOS DATOS QUE INGRESE EN LA MATRIZ
    for(i=0;i<fil;i++)
    {
    for(j=0;j<col;j++)
    printf("%d\t",matriz[i][j]);

    printf("\n");
    }
    // ACUMULO EN LA ULTIMA POSICION DE LA MATRIZ
    for(i=0;i<fil;i++)
    {
    for(j=0;j<col;j++)
    {
    matriz[i][col]+= matriz[i][j];
    matriz[fil][j]+= matriz[i][j];
    }
    }
    printf("\n");

    // MUESTRO LAS SUMAS
    for(i=0;i<fil+1;i++)
    {
    for(j=0;j<col+1;j++)
    printf("%d\t",matriz[i][j]);
    printf("\n");
    }
    getch();

    return 0;
    }

    ResponderBorrar
  8. /*
    SUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y
    CADA COLUMNA
    */
    #include
    #include
    #define TAM 3

    void main()
    {
    int matriz[TAM+1][TAM+1],i,j;

    clrscr();

    /* INICIALIZAMOS LA MATRIZ */
    for(i=0;i<TAM+1;i++)
    for(j=0;j<TAM+1;j++)
    matriz[i][j] = 0;

    /* INGRESO DE LOS DATOS */
    for(i=0;i<TAM;i++)
    {
    for(j=0;j<TAM;j++)
    {
    printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i+1,j+1);
    scanf("%d",&matriz[i][j]);
    }
    printf("\n");
    }

    /* MUESTRAMOS LOS DATOS QUE SE INGRESARON EN LA MATRIZ */
    for(i=0;i<TAM;i++)
    {
    for(j=0;j<TAM;j++)
    printf("%d\t",matriz[i][j]);

    printf("\n");
    }

    /* ACUMULO EN LA ULTIMA POSICION DE LA MATRIZ*/
    for(i=0;i<TAM;i++)
    {
    for(j=0;j<TAM;j++)
    {
    matriz[i][TAM]+= matriz[i][j];
    matriz[TAM][j]+= matriz[i][j];
    }
    }
    printf("\n");

    printf("\n A\tB\tC\tSF\n");
    printf("-----------------------------\n");
    /* MUESTRO LAS SUMAS */
    for(i=0;i<TAM+1;i++)
    {
    for(j=0;j<TAM+1;j++)
    printf("%d\t",matriz[i][j]);
    printf("\n");
    }
    printf("-----------------------------\n");
    getch();
    }

    ResponderBorrar

Copyright © 2013 Lenguaje c and Blogger Themes.