[ Foro de C# ]

Problema con un bucle while

30-Jun-2017 20:05
Invitado (Erick Corona)
1 Respuestas


 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
 
            Console.WriteLine("Calcula la media de los diferentes examenes" + Environment.NewLine
                + "Introduzca la calificación de los hazta la que quiera. Cuando termine, introdusca -1");
            int numeroDeCalificaciones = 0;
            double sumaDeCalificaciones = 0;
            double numeroIngresado = 0;
 
 
 
            while (numeroIngresado != -1)
            {
                numeroIngresado = Convert.ToDouble(Console.ReadLine());
                if (numeroIngresado != -1)
                {
                    sumaDeCalificaciones += numeroIngresado;
                    //lo de arriva es igual que poner sumaDeCalificaciones = sumaDeCalificaciones + Convert.ToDouble(Console.ReadLine()); 
                    //que a su ves se puede aplicar con cualquier sinvolo aritmetico
                    numeroDeCalificaciones++;// se incrementa en uno
                }
                double media = sumaDeCalificaciones / numeroDeCalificaciones;
                Console.Write("La media de las calificaciones es igual a:" + media);
 
            }
            Console.ReadKey();
        }
    }
}
 



buenas tarde quisiera saber si alguien me puede decir porque cuando ejecuto este programa me da error en la conversión de la cadena en un tipo double, de antemano gracias


03-Jul-2017 10:08
Invitado (Caranim)

Creo que el programa funciona bien. El problema podría ser que, una vez muestra la media actual:

-->  Console.Write("La media de las calificaciones es igual a:" + media);

... termina el bucle y la siguiente instrucción incluye un Console.Readline  ( la primera del bucle ) con lo que el programa se queda esperando que introduzcas nuevos datos. Si en vez de teclear una cantidad pulsas solo "Return" para saltar de línea, lo que consigues es que intentas convertir "" a double y es lo que provoca el error.






(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.)