Como recorrer una matriz en forma de culebrita ?

Iniciado por Ivancamilo, 28 Agosto 2016, 15:15 PM

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

Ivancamilo

Hola buenos días, me podrían indicar como puedo recorrer una matriz  de m * n donde m y n son datos que ingresa el usuario, la forma en que se debe de recorrer la matriz es la siguiente, tomando m y n como 3 * 3 las posiciones en el orden en que debe de recorrerse seria el siguiente:
Matriz[0][0]=4
Matriz[1][0]=11
Matriz[0][1]=10
Matriz[0][2]=9
Matriz[1][1]=13
Matriz[2][0]=12
Matriz[2][1]=7
Matriz[1][2]=6
Matriz[2][2]=3
Es que en verdad no entiendo cómo hacerlo, y e  intento y no he conseguida hacer esas secuencia con los for que habitualmente se recorre una matriz.

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main() {
int f,c;
cout<<"digite el numero de filas"<<endl;
cin>>f;
cout<<"digite el numero de colomnas"<<endl;
cin>>c;
int matriz[f][c];
//lleno la matriz en forma de culebrita
for(int i=0;i<f;i++){
for(int j=0;j<c;j++){

cin>>matriz[i][j];

}
}
// termino de llenar la matriz

//imprimo la matriz
for(int i=0;i<f;i++){
for(int j=0;j<c;j++){
if(j==(c-1)){
cout<<matriz[i][j]<<"\n";
}else{
cout<<matriz[i][j]<<" ";
}

}
}
// termino de imprimir la matriz

return 0;
system("pause");
}

AlbertoBSD

No se le ve una forma tan obvia de recorrerlos.
Lo que mas se aproxima es poder porgramar un movimiento en diagonal y cada que llegue a alguno de los límites programar con suba o baje segun sea el caso.

El detalle es que los limetes crecen y decresen. Lo interesante seria programar ese movimiento para un arrar bidimensional de cualquier Altura y anchura...


Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Ivancamilo

Mira algo así es la forma en que se debe de llenar la matriz.