Napisałem program w dwóch klasach który pobiera od ucznia oceny i potem pokazuje ich średnią, najwyższą, najniższą, lecz ma problem z Visual Studio, ponieważ przy kompilacji nie wykrywa żadnych problemów, lecz gdy chcę uruchomić to pokazuje mi się "Nieobsługiwany wątek System.InvalidOperationException: „Sekwencja nie zawiera elementów.”"
(robię polskie nazwy zmiennych i metod, ponieważ wtedy łatwiej uczy mi się nowego języka)
Pierwsza klasa:
błąd występuje przy return oceny.Max(); w metodzie NajwiekszaOcena
using System;
using System.Collections.Generic;
using System.Linq;
namespace StudentDiary
{
class Diary
{
List<float> oceny = new List<float>();
public void DodawanieOceny(float ocena)
{
oceny.Add(ocena);
}
float suma;
float srednia;
public float WyliczaneiSredniej()
{
foreach (var ocena in oceny)
{
suma = suma + ocena;
}
srednia = suma / oceny.Count();
return srednia;
}
public float NajwiekszaOcena()
{
return oceny.Max();
}
public float NajnizszaOcena()
{
return oceny.Min();
}
}
}
Druga klasa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudentDiary
{
class Program
{
static void Main(string[] args)
{
Diary dziennik = new Diary();
float srednia = dziennik.WyliczaneiSredniej();
float najwyzsza = dziennik.NajwiekszaOcena();
float najnizsza = dziennik.NajnizszaOcena();
Console.WriteLine("Ile dostałeś dzisiaj ocen ?");
int LiczbaOcen = int.Parse(Console.ReadLine());
for (; ;)
{
Console.WriteLine("Podaj Ocenę:");
float ocena = float.Parse(Console.ReadLine());
//przekazujemy ocene do dziennika
dziennik.DodawanieOceny(ocena);
if(ocena == LiczbaOcen)
{
break;
}
}
Console.WriteLine("Średnia twoich ocen to:" + srednia);
Console.WriteLine("Najwyższa ocena to:" + najwyzsza);
Console.WriteLine("Najniższa ocena to:" + najnizsza);
Console.ReadKey();
}
}
}