elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ejercicio con matrices resuelto en un 90% (necesito ayuda)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio con matrices resuelto en un 90% (necesito ayuda)  (Leído 2,392 veces)
Beaustyle

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ejercicio con matrices resuelto en un 90% (necesito ayuda)
« en: 8 Junio 2012, 03:00 am »

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?


En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Ejercicio con matrices resuelto en un 90% (necesito ayuda)
« Respuesta #1 en: 8 Junio 2012, 07:40 am »

Hola! te marco los errores:
1º Estas llenando mal la matriz, tiene q ser:
Código
  1. a[i][j]=(rand()%(10-0+1)+0);
y porque sumas y restas cero??? entre 0 y 10, rand()%11;
2º No inicias la semilla de rand(), por lo que si ejecutas varias veces el programa te va a repetir los numero. En el main pone srand(time(NULL));
3º para imprimir la matriz tambien tenes q usar a[j]
4º para imprimir el vector tenes q usar b
Citar
¿Si pongo el j primero, lo considera como columa o como fila?
es la columna... solo tenes q arreglar el tema de los subindices como te marq antes

SAludos

PD: usa las etiquetas GeSHi para poner codigo


En línea

Ahorrate una pregunta, lee el man
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines