El ejercicio es este:
Hallar el menor número de cada columna de una matriz N * M y mostrar su
factorial en un vector. Genere números entre 0 y 10.
y pues mi código es este:
#include <iostream.h>
#include <stdlib.h>
void hallarMenor(int n, int m, int a[20][20], int b[20]);
void ingresarMatriz(int &n, int &m, int a[20][20]);
void mostrarMatriz(int n, int m, int a[20][20]);
void mostrarVector(int n, int b[20]);
int main()
{
int n, m, a[20][20], b[20];
ingresarMatriz(n, m, a);
cout<<"Matriz ingresada: "<<endl;
mostrarMatriz(n, m, a);
hallarMenor(n, m, a, b);
cout<<"El vector del factorial de los menores es: "<<endl;
mostrarVector(n, b);
system("PAUSE");
return 0;
}
void hallarMenor(int n, int m, int a[20][20], int b[20]){
int i, j, f, k, menor=11, c;
for(j=0; j<m; j++) //¿Si pongo el j primero, lo considera como columa o //como fila?
for(i=0; i<n; i++){
if(a[j]<menor){
menor=a[j];
b[k]=a[j];
k++;
}
}
}
/*f=1;
for (c=1; c<=b[k]; c++){
f=c*f;
b[k]=f;
k++;
}
} */
void ingresarMatriz(int &n, int &m, int a[20][20]){
int i, j;
cout<<"Ingresar nro filas: ";
cin>>n;
cout<<"Ingresar nro de columnas: ";
cin>>m;
for(i=0; i<n; i++){
for(j=0; j<m; j++)
a[j]=(rand()%(10-0+1)+0);
}
}
void mostrarMatriz(int n, int m, int a[20][20]){
int i, j;
for(i=0; i<n; i++){
for(j=0; j<m; j++)
cout<<a[j]<<"\t";
cout<<endl;
}
}
void mostrarVector(int n, int b[20]){
int i;
for(i=0; i<n; i++)
cout<<b<<"\t";
cout<<endl;
}
Lo del factorial lo puse como comentario porque quería saber si el vector me imprimía los valores mínimos de cada columna, pero no es así, solo me imprime ceros. ¿Alguna ayuda? ¿Qué estoy haciendo mal? ¿Si quiero explorar la matriz por columas, está bien poner el j antes?