bucles anidados
Publicado por roberto (6 intervenciones) el 12/03/2018 12:48:30
hola tengo un problema con un bucle anidado y no se pq me funciona jeje y no me lo quiero aprender a capon...
el caso es que como veis en -------- lo que esta ahi encerrado, son 3 bucles los dos primeros hacen avanzar a mis filas y mis columnas pero el tercero es el que no entiendo, se supone que al empezar en 0 avanzaria como los demas y no es asi. cuando meto una matriz al programa me * filas por columnas y luego repite filas por otra columna y asi, es decir: como sabe el bucle de 3 que tiene que avanzar asi y me da el valor correcto de las matrices pq lo he hecho a mano y las da bien... igual es que lo estoy cogiendo por donde no es no se, necesito que alguien me aclare pq no me entero la verdad. un saludo y muchas gracias.
el caso es que como veis en -------- lo que esta ahi encerrado, son 3 bucles los dos primeros hacen avanzar a mis filas y mis columnas pero el tercero es el que no entiendo, se supone que al empezar en 0 avanzaria como los demas y no es asi. cuando meto una matriz al programa me * filas por columnas y luego repite filas por otra columna y asi, es decir: como sabe el bucle de 3 que tiene que avanzar asi y me da el valor correcto de las matrices pq lo he hecho a mano y las da bien... igual es que lo estoy cogiendo por donde no es no se, necesito que alguien me aclare pq no me entero la verdad. un saludo y muchas gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// programa que realice el producto de dos matrices
#include<iostream>
#include<conio.h>//funcion getch();
#include<stdlib.h>//funcion system("pause");
#include<time.h>//funcion srand(time(NULL)); var = 1 + rand () % (100) ;
using namespace std;
int main (){
int m1[100][100] , m2[100][100] , m3[100][100] , filas , columnas ;
cout<<"filas ";cin>>filas;
cout<<"columnas: ";cin>>columnas;
for(int i = 0 ; i<filas ; i++)
{for(int j = 0 ; j<columnas ; j++)
{cout<<"valor "<<i<<j<<"\t"; cin>>m1[i][j]; }
}
for(int i = 0 ; i<filas ; i++)
{for(int j = 0 ; j<columnas ; j++)
{cout<<"valor "<<i<<j<<"\t"; cin>>m2[i][j]; }
}
1
2
3
4
5
6
7
for(int i = 0 ; i<filas ; i++)
{for(int j = 0 ; j<columnas ; j++)
{m3[i][j] = 0 ; for(int k = 0 ; k<100 ; k++)
{m3[i][j] = m3[i][j] + m1[i][k] * m2[k][j] ; }
}
}
1
2
3
4
5
6
7
for(int i = 0 ; i<filas ; i++)//mostrar matriz
{for(int j = 0 ; j<columnas ; j++)
{cout<<"\n matriz producro "<<m3[i][j]; } cout<<"\n";
}
return 0;
}
Valora esta pregunta
0