2
svar
684
visningar
Väderstation del 2
Nu jobbar jag med den andra delen av uppgiften Väderstation. Jag är nästan klar med programmet men får upp ett litet fel.. under case: "S" är temp understrucken med rött på raden for (int i = 0; i < temp.Length; i++)
Jag får upp felet Use of unassigned local variable 'temp'..
Jag har skapat vektorn temp under case "L": eftersom användaren ska ha möjlighet att välja själv hur många temperaturer hen vill lägga i.
Är det någon som kan hjälpa mig att lösa problemet?
bool minBool = true;
while (minBool)
{
Console.WriteLine("\t[L]ägg till temperaturmätning" +
"\n\t[S]kriv ut alla temperaturer och medeltemperatur" +
"\n\t[T]a bort temperaturmätning" +
"\n\t[A]vsluta");
Console.Write("Välj: ");
string menyVal = Console.ReadLine();
switch (menyVal.ToUpper())
{
case "L":
Console.Write("Ange antal temperaturer som du har mätt upp: ");
string str = Console.ReadLine();
int size = Convert.ToInt32(str);
double[] temp = new double[size];
for (int i = 0; i < temp.Length; i++)
{
//Läs in värdet
Console.Write("Ange temperatur " + i + ": ");
double element = double.Parse(Console.ReadLine());
//Lägg in värdet i vektorn på index i
temp[i] = element;
}
break;
case "S":
double summa = 0;
for (int i = 0; i < temp.Length; i++)
{
Console.WriteLine("Temperaturerna är: " + temp[i]);
summa = summa + temp[i];
}
Console.WriteLine("Medans medelsumman för dom är: " + summa / temp.Length);
Console.ReadLine();
break;
case "T":
Console.WriteLine("Välj ett index för vilken temperatur du vill ta bort : ");
for (int i = 0; i < temp.Length; i++)
{
Console.WriteLine("Index: {0} Tal: {1}", i, temp[i]);
}
Int32.TryParse(Console.ReadLine(), out int index);
if (index >= 0 && index < temp.Length) // Kollar så att indexvärdet är högre än noll och mindre än längden av vektorn. Felhantering
{
Console.WriteLine("Du valde index: " + temp[index]);
}
Console.WriteLine("Vill du skriva en ny temperatur? j/n");
string svar =Console.ReadLine();
if (svar == "j" || svar == "J")
{
Console.WriteLine("Skriv in en ny temperatur: ");
double nytt = Convert.ToDouble(Console.ReadLine());
temp[index] = nytt;
}
else
{
}
break;
case "A":
minBool = false;
break;
default:
Console.Clear();
Console.WriteLine("\n\tOgiltligt val, välj ett menyval mellan L, S, T eller A!");
Console.ReadLine();
break;
}
}