[ Foro de C# ]
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.
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.
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.)