C sharp - Ayuda con ejercicio de C#

 
Vista:
sin imagen de perfil

Ayuda con ejercicio de C#

Publicado por anonymous (13 intervenciones) el 08/02/2016 11:46:21
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.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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();
 
 
 
        }
    }
}


Gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 39
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Ayuda con ejercicio de C#

Publicado por Marcelo (23 intervenciones) el 09/02/2016 00:59:49
Si la vista no me falla, creo que el error esta en la siguiente parte

1
2
3
4
5
6
7
8
9
10
11
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; //Acá falto dividir para quitar la cifra
 
                cifra3 = auxiliar % 10;
 
                cifra4 = auxiliar / 10;

Espero te sirva, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Ayuda con ejercicio de C#

Publicado por anonymous (13 intervenciones) el 10/02/2016 00:09:42
muchas gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Ayuda con ejercicio de C#

Publicado por Thanatos (14 intervenciones) el 09/02/2016 03:18:05
Revisa los resultados de las operaciones, no te será difícil encontrar el error.

En los comentarios que agregué a tu código, aparecen los resultados que se van obteniendo para el número 1586 que pusiste como ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cifra1 = numero % 10;     // cifra1 = 1586 % 10   --->  cifra1 = 6
 
auxiliar = numero / 10;   // auxiliar = 1586 / 10 --->  auxiliar = 158
 
cifra2 = auxiliar % 10;   // cifra2 = 158 % 10    --->  cifra2 = 8
 
auxiliar = auxiliar % 10; // auxiliar = 158 % 10  --->  auxiliar = 8
 
cifra3 = auxiliar % 10;   // cifra3 = 8 % 10      --->  cifra3 = 8
 
cifra4 = auxiliar / 10;   // cifra4 = 8 / 10      --->  cifra4 = 0
 
 
Console.WriteLine("La cuarta cifra del número " + numero + " es " + cifra4);   // 0
 
Console.WriteLine("La tercera cifra del número " + numero + " es " + cifra3);  // 8
 
Console.WriteLine("La segunda cifra del número " + numero + " es "  + cifra2); // 8
 
Console.WriteLine("La primera cifra del número " + numero + " es " + cifra1);  // 6
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Ayuda con ejercicio de C#

Publicado por anonymous (13 intervenciones) el 10/02/2016 00:14:43
muchas gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 17
Ha aumentado 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Ayuda con ejercicio de C#

Publicado por Alejandro (8 intervenciones) el 09/02/2016 14:20:16
Yo considero que para mostrar las 4 cifras es más fácil convertir el numero entrado por consola en String y de ahí darle tratamiento a la cadena, así mas o menos es como quedaría, esto no les deja errores posibles en el cálculo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Program
    {
        static void Main(string[] args)
        {
            string numero = "";
 
            Console.WriteLine("Introduce un número");
            Console.WriteLine("");
            numero = Console.ReadLine();
 
            if (numero.Length != 4)
            {
                Console.WriteLine("Número fuera de rango\nPulse una tecla para continuar...");
                Console.ReadKey();
                return;
            }
 
            for(int i = 0; i <= numero.Length - 1; i++)
                Console.WriteLine(string.Format("Numero {0} - cifra {1}", numero, numero[i].ToString()));
 
            Console.WriteLine("Número analizado...");
            Console.ReadKey();
        }
    }

Saludos y espero que les sirva de algo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Ayuda con ejercicio de C#

Publicado por anonymous (13 intervenciones) el 10/02/2016 00:16:20
muchas gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar