multipllicacion matrices ciclo for

Iniciado por asdexiva, 4 Diciembre 2014, 15:05 PM

0 Miembros y 1 Visitante están viendo este tema.

asdexiva

#include<stdio.h>

void main()

{

printf("Datos de la Matriz A :\n");
           
int i,j,k;

int matriz [3][3];
    int matriz1 [3][3];   
     int c [3][3];
       
              for(i=0;i<=2;i++){
             for (j=0;j<=2;j++){
                 printf("Escribir valor %d en %d:",i,j);
                 scanf("%d",&matriz[i][j]);
                }
            }
                 printf("Datos de la Matriz B :\n");
           
            for (i=0; i<=2; i++){
             for (j=0; j<=2; j++){
                  printf("Escribir valor %d en %d:",i,j);
                scanf("%d",&matriz1[i][j]);
                }
            }
                   for (i=0; i<=2; i++){
   for (j=0; j<=2; j++){
   c[i][j]=0;
   for (k=0; k<=2; k++){
               
c[i][j]=c[i][j]+(matriz[i][k]*matriz1[k][j]);
                 
        }
    }
}
           
       
                   printf("Matriz resultante  :");

    for (i=0;i<=2;i++){
    printf("\n");
            for (j=0;j<=2;j++) {
             
                printf(" %d\t",c[i][j]);
                 }
                  }
             
                 printf("\n");
           
         
           
    }


alguien que me pueda ayudar a comprender esta parte

for (i=0; i<=2; i++){
   for (j=0; j<=2; j++){
   c[i][j]=0;
   for (k=0; k<=2; k++){
               
c[i][j]=c[i][j]+(matriz[i][k]*matriz1[k][j]);


que hace k ? por que no solo i y j  podrian explicarme esta parte

fary

No hay nada que explicar... es así porque el algoritmo es así, y no hay mas. Simplemente recorre el array y lo va multiplicando y sumando de una manera un tanto peculiar.

¿Es un algoritmo de algo en especial?

Quizás si ordenas el código no te líes tanto:

#include <stdio.h>

int main()

{
   printf("Datos de la Matriz A :\n");
           
   int i,j,k;

   int matriz [3][3];
   int matriz1 [3][3];    
   int c [3][3];
       
   for(i=0;i<=2;i++)
   {
       for (j=0;j<=2;j++)
       {
           printf("Escribir valor %d en %d:",i,j);
           scanf("%d",&matriz[i][j]);
       }
   }
               
   printf("Datos de la Matriz B :\n");
           
   for (i=0; i<=2; i++)
   {
       for (j=0; j<=2; j++)
       {
           printf("Escribir valor %d en %d:",i,j);
           scanf("%d",&matriz1[i][j]);
       }
   }
                 
   for (i=0; i<=2; i++)
   {
       for (j=0; j<=2; j++)
       {
           c[i][j]=0;
   for (k=0; k<=2; k++)
           {

               c[i][j]=c[i][j]+(matriz[i][k]*matriz1[k][j]);
           }
       }
   }
           
       
   printf("Matriz resultante  :");

   for (i=0;i<=2;i++)
   {
    printf("\n");
           
       for (j=0;j<=2;j++)
       {
           printf(" %d\t",c[i][j]);
       }
   }
             
   printf("\n");

   return 0;
}


PD: Esto iría en otra sección.
Un byte a la izquierda.