Por favor, ¿alguien puede ayudarme con este ejercicio en C#?

Iniciado por palentino12, 8 Febrero 2016, 11:50 AM

0 Miembros y 1 Visitante están viendo este tema.

palentino12

Buenas tengo un problema con este ejercicio en C#, el programa no me sale del todo bien.

Es este.


Realizar un programa que dado un número de 4 cifras introducido por teclado, indique los dígitos de éste por separado.

Poniendo un ejemplo esto es lo que tiene que hacer el programa.


Le metemos un valor de 4 cifras por ejemplo 1586

Y se mostrara por pantalla lo siguiente:

La cuarta cifra del número 1586 es 1

La tercera cifra del número 1586 es 5

La segunda cifra del número 1586 es 8

La primera cifra del número 1586 es 6


Yo he realizado esto, fallo en la cuarta y tercera cifra.


Código (csharp) [Seleccionar]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ejercicio_83
{
   class Program
   {
       static void Main(string[] args)
       {
           int numero, auxiliar, cifra1, cifra2, cifra3, cifra4;

           Console.WriteLine("Introduce un número");

           Console.WriteLine("");

           numero = Int16.Parse(Console.ReadLine());

           if ((numero > 999) && (numero < 10000))
           {
               Console.WriteLine("");

               cifra1 = numero % 10;  // El operador de % calcula el resto después de dividir el primer operando por el segundo.

               auxiliar = numero / 10;

               cifra2 = auxiliar % 10;

               auxiliar = auxiliar % 10;

               cifra3 = auxiliar % 10;

               cifra4 = auxiliar / 10;

               
               Console.WriteLine("La cuarta cifra del número " + numero + " es " + cifra4);

               Console.WriteLine("La tercera cifra del número " + numero + " es " + cifra3);

               Console.WriteLine("La segunda cifra del número " + numero + " es "  + cifra2);

               Console.WriteLine("La primera cifra del número " + numero + " es " + cifra1);
           

           }
           else
           {
               Console.WriteLine("");
               Console.WriteLine("Número fuera de rango");
           }

           
           Console.ReadKey();


           
       }
   }
}




Muchas gracias

Eleкtro

#1
Cita de: palentino12 en  8 Febrero 2016, 11:50 AMLe metemos un valor de 4 cifras por ejemplo 1586

Y se mostrara por pantalla lo siguiente:

La cuarta cifra del número 1586 es 1
La tercera cifra del número 1586 es 5
La segunda cifra del número 1586 es 8
La primera cifra del número 1586 es 6

¿El orden no será al revés?.

Código (csharp) [Seleccionar]
short value = 0;
do {
   Console.WriteLine("Introduzca un valor de 4 dígitos...");
   short.TryParse(Console.ReadLine(), out value);

   if (Convert.ToString(value).Length != 4) {
       Console.Clear();
       Console.WriteLine("Valor incorrecto, inténtelo de nuevo.");
   } else {
       break;
   }
} while (true);

string valueStr = Convert.ToString(value);
for (int index = 0; index <= (valueStr.Length - 1); index++) {
   Console.WriteLine("Dígito nº{0}: {1}", (index + 1), valueStr[index]);
}

Console.ReadKey();


Resultado de ejecución:
Cita de: Visual StudioIntroduzca un valor de 4 dígitos...

6835

Dígito nº1: 6
Dígito nº2: 8
Dígito nº3: 3
Dígito nº4: 5

Saludos








palentino12

muchas gracias por la ayuda.

Bueno el ejercicio es que te lo ponía así.

Gracias