public static Program instance;
public string OrdenaArray(params string[] args)
var resultado = string.Empty;
var numeros = OrdernarArrayNumerico(ConverterParaNumeros(args));
resultado = string.Join(",", numeros);
public string BuscaItensFaltantesNaSequencia(params string[] args)
var resultado = string.Empty;
var numeros = ConverterParaNumeros(args);
var k = numeros[numeros.Length];
var faltantes = new int[k - numeros.Length];
for(var i = numeros[0]; i < numeros[numeros.Length]; i++)
faltantes[indexFaltante] = j;
public int[] ConverterParaNumeros(string[] args)
var numeros = new int[args.Length];
for (var i = 0; i < args.Length; i++)
if (int.TryParse(args[i], out int numero))
throw new ArgumentException($"{i}º Item da coleção não corresponde a numero inteiro válido: {args[i]}");
private int[] OrdernarArrayNumerico(int[] numeros){
var arrayOrdenado = new int[numeros.Length];
for(var i = 0; i < numeros.Length - 1; i++){
for(var j = 0; j < numeros.Length - 1; j++){
if(numeros[j] > numeros[j + 1]){
var auxiliar = numeros[j];
numeros[j] = numeros[j + 1];
numeros[j + 1] = auxiliar;
public static void Main()
instance = instance ?? new Program();
var ordenado = instance.OrdenaArray("6", "3", "5", "4", "01", "7", "9");
var itensFaltantes = instance.BuscaItensFaltantesNaSequencia(ordenado);
var resultadoOrdenadoEsperado = "1,3,4,5,6,7,9";
var resultadoItensFaltantesEsperado = "2,8";
Console.WriteLine(ordenado == resultadoOrdenadoEsperado ? $"CORRETO {ordenado} == {resultadoOrdenadoEsperado}": $"INCORRETO {ordenado} != {resultadoOrdenadoEsperado}");
Console.WriteLine(itensFaltantes == resultadoItensFaltantesEsperado ? $"CORRETO {itensFaltantes} == {resultadoItensFaltantesEsperado}": $"INCORRETO {itensFaltantes} != {resultadoItensFaltantesEsperado}");