Dev - C++ - Problema- Mostrar diagonales de una matriz de NXM

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema- Mostrar diagonales de una matriz de NXM

Publicado por Leandro (2 intervenciones) el 01/02/2021 22:57:09
Resolver un problema de conversión de una matriz en vectores. Para ello
seguir el siguiente procedimiento general:
a) Capturar por teclado los valores de N y M, siendo 2≤N≤6 y 4≤M≤8
b) Llenar una matriz de NxM con valores enteros en el rango 30≤valor≤60 al azar
c) Obtener N vectores con los valores ubicados en las diagonales de la matriz
(el sentido de recorrido se deja a criterio del programador)
d) Mostrar la matriz
e) Mostrar los N vectores
Restricciones adicionales:
 El programa sólo debe permitir continuar sólo con valores de N y M
válidos, en caso contrario debe volver a solicitarlos sin tener que reiniciar
el programa
Ejemplo: Si la matriz de N=4 x M=5 generada al azar fuera:
30 36 49 60 32
58 33 41 40 46
55 52 32 33 51
40 42 36 52 60
Los vectores resultantes asumiendo un recorrido izquierda-derecha ascendente
deben ser:
V1=[30, 42, 32, 40, 32]
V2=[58, 36, 36, 33, 46]
V3=[55, 33, 49, 52, 51]
V4=[40, 52, 41, 60, 60]
-----------------------------------------------------------------------------------------------------------------------
No se como obtener los N vectores con las diagonales.
-----------------------------------------------------------------------------------------------------------------------

#include <iostream>
#include<math.h>
#include<time.h>
#include<stdlib.h>
using namespace std;
void pedido_de_datos(int& n , int& m){
cout<<"Ingrese un numero comprendido entre <2-6>: ";
cin>>n;
while(n<2 or n>6){
cout<<"El valor ingresado no esta comprendido en el rango"<<endl;
cout<<"Vuelva a ingresarlo nuevamente: ";
cin>>n;
}
cout<<"Ingrese un numero comprendido entre <4-8>: ";
cin>>m;
while(m<4 or m>8){
cout<<"El valor ingresado no esta comprendido en el rango"<<endl;
cout<<"Vuelva a ingresarlo nuevamente: ";
cin>>m;
}
}
void llenar_matriz(int matriz[][6],int n,int m){
cout<<"La matriz generada es:"<<endl;
for(int i=0;i<n;i++){
for(for j=0;j<m;j++){
matriz[i][j]=30+rand()%30;
cout<<"|"<<matriz[i][j]<<"|\t";
}
cout<<endl;
}
}
void diagonales()
int main(int argc, char *argv[]) {
int n,m;
int matriz[6][8];
pedido_de_datos(n,m);
llenar_matriz(matriz,n,m);
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder