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:
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
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


0