[ Foro de C# ]

Problema con orden numerico

18-Jun-2014 19:50
Invitado (Nicodromo)
2 Respuestas

Buenas y de antemano gracias por sus respuestas.

Tengo el siguiente problema :

"Diseñe un algoritmo que lea un número entero de 3 cifras, y forme el mayor número posible con las cifras del número ingresado. El número debe tener el mismo signo que el número ingresado"

mi situacion es que no tengo idea alguna de como desarrollarlo, es decir, no se como poder reordenar las tres cifras de mayor a menos y escribirlas en una sola linea.

Muchas Gracias por sus respuestas.


22-Jun-2014 14:59
Nacho Cabanes (+83)

Si tomas el número como cadena de texto, las 3 cifras serán numero[2], numero[1] y numero[0]. Puedes recolocarlas como quieras, formando nuevos string, para luego comprobar los valores resultantes, por ejemplo:


string numero021 = "" + numero[0] + numero[2] + numero[1];


Si quieres hacerlo integramente como números, sin usar cadenas, será un poco más trabajoso: la última cifra es n % 10; para obtener la penúltima cifra, deberás diividir entre 10 y quedarte entonces con la última cifra (nuevamente % 10); para obtener la primera cifra, deberás dividir entre 10 el número actual, o bien dividir entre 100 el número original.


23-Jun-2014 02:14
Juan Hernandez

Se me ocurre primero separar el número en dígitos independientes y guardar cada uno en un arreglo


static void Main(string[] args)
        {
            int numero = 0;
            int resto = 0;
            int i = 0;
            int[] arreglo1 = new int[3];
            Console.WriteLine("Introduce un Número de tres cifras: ");
            numero = Convert.ToInt16(Console.ReadLine());
            while (numero > 0)
            {
                resto = numero % 10;
                numero = numero / 10;
                arreglo1[i] = resto;
                i++;
            }

            //imprimir cada valor del arreglo para ver los valores 
            for (int num = 0; num < arreglo1.Length;num++)
            {
                Console.WriteLine("Elementos {0}", arreglo1[num]);
            }
            Console.ReadKey();
        }


Entonces lo siguiente seria validar cada elemento del arreglo para determinar cual es mayor y poder ordenarlo de mayor a menor, pero no olvides considerar la posibilidad de que todos los dígitos sean iguales p/e: 333.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)