C sharp - Problema con ref y out

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 9 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Problema con ref y out

Publicado por Eduardo (5 intervenciones) el 20/04/2019 18:00:55
El ejercicio en cuestión es que se debe calcular el valor mayor, el menor y la media de una serie de números aleatorios del 1 al 100, de forma modular, la forma de escribir o llamar a los módulos viene determinada por el profesor y no se puede cambiar. Tengo un problema en el modulo con ref y en el modulo con out.

El código es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] numeros = new int[100];
            Random aleatorio = new Random();
 
            for (int i = 0; i < numeros.Length; i++)
            {
                numeros[i] = aleatorio.Next(0, 100) + 1;
            }
 
            Menor(ref numeros);// aqui esta un fallo
            Mayor(numeros);
            Calcular_media(out numeros); // aqui esta el otro
 
        }
 
         static int Mayor(int[] array)
        {
            int max = array[0];
            for (int i = 0; i<array.Length; i++)
            {
                if(array[i] > max)
                {
                    max = array[i];
                }
            }
            Console.WriteLine(max);
            Console.ReadKey();
            return 0;
        }
        static void Menor (int [] array, ref int menor) // aqui el ref que me da el problema
        {
            menor = array[0];
            for( int i = 0; i<array.Length; i++)
            {
                if(array[i] < menor)
                {
                    menor = array[i];
                }
            }
            Console.WriteLine(menor);
            Console.ReadKey();
 
        }
      /* static void Calcular_media (int[] array,out double media) //No funciona no se porque..
        {
            media = 0.0;
            for(int i = 0; i<array.Length; i++)
            {
                media = media + array[i];
            }
           media = media / array.Length;
            
            
        }*/
    }
}

El fallo que me da es el siguiente:
Error CS7036 No se ha dado ningún argumento que corresponda al parámetro formal requerido 'menor' de 'Program.Menor(int[], ref int)' ConsoleApp2 C:\Users\usuario\source\repos\ConsoleApp2\ConsoleApp2\Program.cs 19 Activo

Como puedo solucionarlo??? La parte del out la tengo en comentarios, porque esperaba poder solucionar el ref antes de ponerme con el out, pero no es asi...

Gracias y un saludo
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
sin imagen de perfil
Val: 326
Plata
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Problema con ref y out

Publicado por miguelZ (143 intervenciones) el 22/04/2019 23:39:47
Pues si notas son dos argumentos en tu funcion y tu solo agregas una



Menor (int [] array, ref int menor)

para llamarlo debes enviar el array y el int menor

//numeros es el array.

int menor= 0;
//llamando
Menor(numeros, ref menor)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar