You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
namespace Reto_34
{
class Program
{
/*
* Enunciado: Dado un array de enteros ordenado y sin repetidos,
* crea una función que calcule y retorne todos los que faltan entre
* el mayor y el menor.
* - Lanza un error si el array de entrada no es correcto.
*/
static void Main(string[] args)
{
int[] numeros = new int[] {0, 3, 8, 9, 20};
int[] numFaltan;
bool correcto;
correcto = ComprovarArrayCorrecta(numeros);
if (correcto)
{
numFaltan = NumerosQueFaltan(numeros);
Console.Write("LISTADO DE NÚMEROS -> ");
ImprimirArray(numeros);
Console.Write("\nFALTAN ESTOS NÚMEROS -> ");
ImprimirArray(numFaltan);
}
else
{
Console.Write("LISTADO DE NÚMEROS INCORRECTO -> ");
ImprimirArray(numeros);
}
}
/// <summary>
/// Comprueva que los números enteros de la array estan ordenados (acendente) y no
/// existen valores repetidos.
/// Si cumple con estas condiciones volverà el valor TRUE.
/// </summary>
/// <param name="numeros"></param>
public static bool ComprovarArrayCorrecta(int[] numeros)
{
bool correcto = false;
int numAnterior, numActual;
int i = 1;
if(numeros.Length > 1)
{
numAnterior = numeros[0];
numActual = numeros[1];
correcto = numAnterior < numActual;
while (correcto && i < numeros.Length - 1)
{
numAnterior = numeros[i];
numActual = numeros[i+1];
i++;
correcto = numAnterior < numActual;
}
}
return correcto;
}
/// <summary>
/// Apartir de un array de numeros enteros ordenados (acendente) y no repetidos,
/// devuelve todos los que faltan entre el mayor y el menor.
/// </summary>
/// <param name="numeros"></param>
/// <returns></returns>
public static int[] NumerosQueFaltan(int[] numeros)
{
int e = 0;
int j = 1;
int numFaltan;
int numGrande = numeros[numeros.Length - 1];
int numPequeno = numeros[0];
numFaltan = (numGrande - numPequeno) - numeros.Length + 1;
int[] arrayNumFaltan = new int[numFaltan];
for(int i = 0; i < numeros.Length - 1; i++)
{
while(numeros[i] + j != numeros[i + 1])
{
arrayNumFaltan[e] = numeros[i] + j;
e++;
j++;
}
j = 1;
}
return arrayNumFaltan;
}
/// <summary>
/// Acción de imprimir todos los numeros enteros de un array separados por ','
/// </summary>
/// <param name="numeros"></param>
public static void ImprimirArray(int[] numeros)
{
for (int i = 0; i < numeros.Length; i++)
{
if (i == numeros.Length - 1) Console.Write(numeros[i]);
else Console.Write(numeros[i] + ", ");
}
}
}
}
The text was updated successfully, but these errors were encountered:
using System;
namespace Reto_34
{
class Program
{
/*
* Enunciado: Dado un array de enteros ordenado y sin repetidos,
* crea una función que calcule y retorne todos los que faltan entre
* el mayor y el menor.
* - Lanza un error si el array de entrada no es correcto.
*/
static void Main(string[] args)
{
int[] numeros = new int[] {0, 3, 8, 9, 20};
int[] numFaltan;
bool correcto;
}
The text was updated successfully, but these errors were encountered: