Antal passagerare på bussen
Hur får jag till at den bara visar dom tillagda passagerarna och inte alla 25???
public void print_buss()
{
Console.WriteLine("Åldern på passagerarna är ");
for (int i = 0; i < passenger.Length; i++)
Console.WriteLine(passenger[i] + "år gammal");
}
Du hade en variabel size i den andra tråden. Använd den.
Generellt tips, som blir viktigare ju större kod man jobbar med: Kolla upp hur man indenterar direkt, t.ex. https://codehs.gitbooks.io/introcs/content/Programming-with-Karel/how-to-indent-your-code.html
Det ger bättre struktur och mer lättläst kod, och kommer således även göra det lättare för oss när vi ska hjälpa dig med din kod
Är detta bättre eller fortfarande grötigt??
{
class Program
{
public static void Main(string[] args)
{
var minbuss = new Buss();
minbuss.Run();
}
}
}
class Buss
{
public int[] passenger = new int[25];
public void Run()
{
int menu = 0;
do
{
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine("Välkommen till min buss!");
Console.WriteLine("Välj ett alternativ!");
Console.WriteLine("1. Lägg till passagerare mellan 1 och 25st.");
Console.WriteLine("2. Kontrollera den totala ålder på passagerarna.");
Console.WriteLine("3. Räkna ut totalålder på passagerarna.");
Console.WriteLine("0. Avsluta programmet!");
Console.WriteLine("-----------------------------------------------------");
menu = int.Parse(Console.ReadLine());
switch (menu)
{
case 1:
add_passenger();
break;
case 2:
print_buss();
break;
case 3:
calc_total_age();
break;
case 0: Console.WriteLine("Programmet avslutas");
break;
default: Console.WriteLine("Felaktig inmatning Försök igen!");
break;
}
} while (menu != 0);
}
public void add_passenger()
{
Console.WriteLine("Hur många passagerare vill du lägga till?");
int size = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < size; i++)
{
Console.WriteLine("Skriv åldern på den/dom passagerare du vill lägga till ");
int pass = Convert.ToInt32(Console.ReadLine());
passenger[i] = pass;
}
}
public void print_buss()
{
Console.WriteLine("Välj hur många passagerare du vill räkna samman 1-25st. ");
int size = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Åldern på alla passagerarna är ");
for (int i = 0; i < size; i++)
Console.WriteLine(passenger[i] + "år gammal");
}
public int calc_total_age()
{
int sum = 0;
for (int i = 0; i < passenger.Length; i++)
{
sum += passenger[i];
}
int totAge = sum / passenger.Length;
Console.WriteLine("Totala åldern på passagerarna är " + sum);
return totAge;
}
Använd Visual Studio Code som indenterar rätt automatiskt. Dessutom jättebra att kunna Visual Studio Code. Jag förstår inte vad du är ute efter. Ett annat tips är skapa variabler/metoder som gör det du vill att dom ska göra istället för att ändra på de variabler/metoder du redan har (eftersom dessa redan gör något). För att få inspiration till hur en metod ska utformas kan man göra en metod som bara testar det man vill göra och utifrån det returnerar sant eller falsk.