miércoles, 25 de julio de 2012

Suma de Matrices en C/C++ (ARRAYS)

Suma de Matrices (Arrays bidimensionales) en C. Sencillo programa que muestra el uso más simple de los arrays bidimensionales, asi como el de funciones de bucle del tipo for:

Si les interesa, os dejo el enlace para el programa que multiplica matrices:
http://cypascal.blogspot.com.es/2014/11/calcula-multiplicacion-de-dos-matrices.html

#include <stdio.h>

const int dim=100;
int i,j,fil,col;
float MatA[dim][dim],MatB[dim][dim]; /*Tamaño maximo de 100x100*/

int main(void)
{
    printf("Programa que suma matrices:\n\n");
    printf("Introduzca el tamano de las matrices:\n\n Filas:"); scanf("%i", &fil);
    printf(" Columnas: "); scanf("%i", &col);
   
    /*Se piden los datos*/
    printf("\n\nIntroduca los datos de la Matriz A:\n");
    for(i=1;i<=fil;i++)
    {
        for(j=1;j<=col;j++)
        {
            printf("\nIntroduzca la coordenada (%i,%i): ",i,j); scanf("%f", &MatA[i][j]);
        }
    }
   
    printf("\n\n\nIntroduca los datos de la Matriz B:\n");
    for(i=1;i<=fil;i++)
    {
        for(j=1;j<=col;j++)
        {
            printf("\nIntroduzca la coordenada (%i,%i): ",i,j); scanf("%f", &MatB[i][j]);
        }
    }
   
    for(i=1;i<=fil;i++)
    {
        for(j=1;j<=col;j++) MatA[i][j]=MatA[i][j]+MatB[i][j]; /*Se guarda el resultado de la suma en la matriz A*/
    }
   
    printf("\n\nLa matriz resultado es:\n\n");
    for(i=1;i<=fil;i++)
    {
        for(j=1;j<=col;j++) printf("%10f",MatA[i][j]);
        printf("\n");
    }
    return 0;
}





Un Saludo;

8 comentarios:

  1. #include

    int main(void){
    const int dim=100;
    int i,j,fil,col;
    float MatA[dim][dim],MatB[dim][dim];
    printf("Programa que suma matrices:\n\n");
    printf("Introduzca el tamano de las matrices:\n\n Filas:"); scanf("%i", &fil);
    printf(" Columnas: "); scanf("%i", &col);

    printf("\n\nIntroduca los datos de la Matriz A:\n");
    for(i=1;i<=fil;i++)
    {
    for(j=1;j<=col;j++)
    {
    printf("\nIntroduzca la coordenada (%i,%i): ",i,j); scanf("%f", &MatA[i][j]);
    }
    }

    printf("\n\n\nIntroduca los datos de la Matriz B:\n");
    for(i=1;i<=fil;i++)
    {
    for(j=1;j<=col;j++)
    {
    printf("\nIntroduzca la coordenada (%i,%i): ",i,j); scanf("%f", &MatB[i][j]);
    }
    }

    for(i=1;i<=fil;i++)
    {
    for(j=1;j<=col;j++) MatA[i][j]=MatA[i][j]+MatB[i][j]; /*Se guarda el resultado de la suma en la matriz A*/
    }

    printf("\n\nLa matriz resultado es:\n\n");
    for(i=1;i<=fil;i++)
    {
    for(j=1;j<=col;j++) printf("%10f",MatA[i][j]);
    printf("\n");
    }
    return 0;
    }

    asi si da camaradas.
    saludos. lml,

    ResponderEliminar

  2. #include

    int main(){

    int rows, columns, cont, j;
    printf("Ingrese la cantidad de filas: ");
    scanf("%i", &rows);
    printf("/nIngrese la cantidad de columnas: ");
    scanf("%i", &columns);

    int matrix[rows][columns];
    int matrix2[rows][columns];
    int suma[rows][columns];

    printf("\tIngrese los datos de la primera matrix\n");

    for(cont = 0; cont < rows ; cont++){
    for(j = 0; j < columns; j++){

    printf("Ingrese el elemento [%i,%i]",cont,j);
    scanf("%i", &matrix[cont][j]);

    }
    }

    printf("\n\tIngrese los datos de la segunda matrix\n");

    for(cont = 0; cont < rows ; cont++){
    for(j = 0; j < columns; j++){

    printf("Ingrese el elemento [%i,%i]",cont,j);
    scanf("%i", &matrix2[cont][j]);

    }
    }

    for(cont = 0; cont < rows ; cont++){
    for(j = 0; j < columns; j++){
    suma[cont][j] = matrix[cont][j] + matrix2[cont][j];
    }
    }

    printf("La matriz suma es: \n");

    for(cont = 0; cont < rows ; cont++){
    printf("|");

    for(j = 0; j < columns; j++){
    printf("%i", suma[cont][j]);

    if(j < columns-1){
    printf(" ");
    }
    }

    printf("|");
    putchar('\n');
    }

    return 0;
    }

    ResponderEliminar
  3. #include

    int main ()
    {
    int A[20][20], B[20][20], C[20][20];
    int i, j, m1, n1, m2, n2;

    printf ("Dimension de A\n");
    printf ("Filas= "); scanf ("%d",&m1);
    printf ("Columnas= "); scanf ("%d",&n1);
    printf ("Dimension de B\n");
    printf ("Filas= "); scanf ("%d",&m2);
    printf ("Columnas= "); scanf ("%d",&n2);

    if ((m1==m2)&&(n1==n2))
    {
    printf ("Elementos de A\n");
    for (i=0; i<m1; i++)
    {
    for (j=0; j<n1; j++)
    scanf ("%d",&A[i][j]);
    }
    printf ("Elementos de B\n");
    for (i=0; i<m2; i++)
    {
    for (j=0; j<n2; j++)
    scanf ("%d",&B[i][j]);
    }
    }
    else
    {
    printf ("Lo sentimos, no te podemos ayudar\n");
    }

    for (i=0; i<m1; i++)
    {
    for (j=0; j<n1; j++)
    {
    C[i][j]=A[i][j]+B[i][j];
    }
    }
    printf("El resultado es:\n");
    for (i=0; i<m1; i++)
    {
    for (j=0; j<n1; j++)
    {
    printf("%d\n", C[i][j]);
    }
    }

    return 1;
    }

    ResponderEliminar