none
Matrz c# RRS feed

  • Pregunta

  • Buenas, estoy intentando que mi programa me muestre cual es el numero que mas se repte en una matriz aleatoria de 5x5.

     static void Moda(int rep, int num, int[,] m)
            {
                int cont = 0;
                for (int j = 0; j < m.GetLength(1); j++)
                {
    
                    for (int i = 0; i < 5; i++)
                    {
                        num = m[i, j];
                        if (num > 0)
                        {
                            rep = cont;
                            num = m[i, j];
                            cont++;
                        }
                    }
                }
            }

    El problema es que al ejecutar me indica que el numero 0 es el que mas se repitio, y el numero de repeticiones tambien es 0.

    Cual seria el problema? 

    Desde ya muchas gracias.

    martes, 3 de julio de 2018 21:01

Todas las respuestas

  • Tal como está tu código, si la matriz es de 5x5 debería darte lo siguiente:

    cont = cantidad de números mayores a cero presentes en la matriz.

    num = ultimo elementos de la matriz, o sea m[5,5]

    rep = cont -1

    Como te darás cuenta esto no tiene sentido. Respecto a la pregunta: no entiendo que querés decir con el menor que más se repita, ya que el menor es uno sólo (que se puede repetir). Podrías explicarlo mejor? tal vez con un ejemplo se entienda

    miércoles, 4 de julio de 2018 2:50
  • Quiero que la consola me muestre el numero que mas se repite en la matriz de 5x10* (perdon puse mal los indices en mi explcacion anterior), la idea es que me muestre de los 50 numeros cual es el que mas se repite, la matriz se carga con numeros aleatorios del 1 al 48.

    Perdon por el error anterior.

     
    miércoles, 4 de julio de 2018 2:58
  • Yo crearía una matriz R[50,2] de repeticiones para ir contando. La cargaría al inicio con esto valores:

       1,0
       2,0
       3,0
        .
        .
        .
      50,0
    Después voy recorriendo la matriz de 5x10, Como todos los números de esta matríz van del 1 al 50 coincidirán con alguno de la 1ra columna de la matriz de repeticiones. Por ejemplo si m[7,3]=19, tendré que incrementar la 2da columna de la fila nro 18 (tendría que hacer: R[m[7,3]-1, 1]++)


    • Editado AntiWork miércoles, 4 de julio de 2018 4:24
    miércoles, 4 de julio de 2018 4:21
  • Disculpa me podrias dar un ejemplo con codigo asi logro entenderlo mejor, no quiero que hagas mi ejercicio solo quiero un ejemplo, si puedes te lo agradeceria muchisimo, sino, de todas muchas gracias por tus respuestas.
    viernes, 6 de julio de 2018 17:57
  • //Una vez creada y cargada R[50,2] for (int i = 0; i < 5; i++) { for (int j = 0; j < 10; j++) { R[m[i,j]-1,1]++; } } /*Ahora solo queda recorrer R en busca del mayor valor de la segunda columna.

    Cuando lo encontrás, en esa fila tendrás en la 1ra columna el número y en la 2da

    la cantidad de veces que se repite.*/




    • Editado AntiWork sábado, 7 de julio de 2018 3:49
    sábado, 7 de julio de 2018 3:48