Skriva ut element från en vektor

Permalänk
Medlem

Skriva ut element från en vektor

HEJ!

Jag arbetar just nu med C# och ska skriva ut lite värden från en vektor.

Problemet jag har är att jag vill skriva ut specifika värden, och inte hela "[i]".

Finns det ett sätt att göra detta på?

Själva programmet fungerar såhär:

En buss-simulator, Användaren ska mata in tal i en vektor som är 25 indexpositioner stor. Användaren behöver inte mata 25 värden, utan det väljer han/hon själv. efter att användaren har matat in sina värden, så kommer en meny upp där användaren kan välja att "find the specific age in the bus". och då ska han kunna mata in att han vill hitta personer som är mellan "20-40" t.ex.
jag har valt och ha två rader där han får välja Max, och Min ålder. Men det är nu problemet kommer:

Jag använder mig av en for loop, och en if-sats i den, och det fungerar som det ska, men sen så ska jag skriva ut dom elementen som är innanför användarens "krav" alltså dom elementen som matchar hans åldersgräns "20-40", jag började med och sätta "Console.WriteLine(passengers[i]);", men skriver då ut alla element från vektorn.

Mottager gärna lästips eller dylikt!

GOD JUL på er!

Permalänk
Medlem

Låter som det är fel på din ifsats bara, antingen det eller så är passengers en lista av listor.

Permalänk
Medlem
Skrivet av Xenofonus:

Låter som det är fel på din ifsats bara, antingen det eller så är passengers en lista av listor.

Okej! ska gå igenom if-satsen! Tack!

Permalänk

om vi antar att du har gett varje passagerare en variabel för ålder så borde du helt enkelt nå värdet i den med
"Console.WriteLine(passengers[i].Ålder);"

Permalänk
Medlem
Skrivet av interouse:

om vi antar att du har gett varje passagerare en variabel för ålder så borde du helt enkelt nå värdet i den med
"Console.WriteLine(passengers[i].Ålder);"

Det är såhär att när användaren matar in tal till vektorn så matar han in deras ålder i vektorn, så elementen i vektorn är åldern"

public int [] passengers = new int [25]

inmatning till vektorn ser ut såhär : "Add a new passenger to the bus(vektorn) by entering their age".

så en variabel för deras ålder har jag inte.. väl? det är ju liksom hela vektorn som består av deras ålder.

jag kanske rör till att nu, isåfall ber jag om ursäkt.. haha

Permalänk
Medlem
Skrivet av interouse:

om vi antar att du har gett varje passagerare en variabel för ålder så borde du helt enkelt nå värdet i den med
"Console.WriteLine(passengers[i].Ålder);"

Tror inte TS har börjat med klasser och objekt utan vektorn verkar vara en intarray? Rätta mig om jag har fel

EDIT * ja det är en intarray

Permalänk
Medlem
Skrivet av Reyleigh:

Okej! ska gå igenom if-satsen! Tack!

själva metoden för "Find age" ser ut såhär

public void find_age() { Console.WriteLine("\nPlease, enter the lowest age you're searching for : "); int lowAge = int.Parse(Console.ReadLine()); Console.WriteLine("\nPlease, enter the highest age you're searching for : "); int highAge = int.Parse(Console.ReadLine()); Console.WriteLine("\nThe passenger between the age of " + lowAge + "-" + highAge + " years old are sitting on : "); for (int i = 0; i < sum_passengers; i++) { if(passengers[i] > lowAge || passengers[i] < highAge) { Console.WriteLine("\nSeat : " + passengers[i]); } } Console.WriteLine("Press any key to go to the menu"); Console.ReadKey();

vektorn ser ut såhär

public int [] passengers = new int [25]

Permalänk
Medlem
Skrivet av Reyleigh:

själva metoden för "Find age" ser ut såhär

public void find_age() { Console.WriteLine("\nPlease, enter the lowest age you're searching for : "); int lowAge = int.Parse(Console.ReadLine()); Console.WriteLine("\nPlease, enter the highest age you're searching for : "); int highAge = int.Parse(Console.ReadLine()); Console.WriteLine("\nThe passenger between the age of " + lowAge + "-" + highAge + " years old are sitting on : "); for (int i = 0; i < sum_passengers; i++) { if(passengers[i] > lowAge || passengers[i] < highAge) { Console.WriteLine("\nSeat : " + passengers[i]); } } Console.WriteLine("Press any key to go to the menu"); Console.ReadKey();

vektorn ser ut såhär

public int [] passengers = new int [25]

Kan felet ligga i if-satsen?

Permalänk
Medlem
Skrivet av Reyleigh:

själva metoden för "Find age" ser ut såhär

public void find_age() { Console.WriteLine("\nPlease, enter the lowest age you're searching for : "); int lowAge = int.Parse(Console.ReadLine()); Console.WriteLine("\nPlease, enter the highest age you're searching for : "); int highAge = int.Parse(Console.ReadLine()); Console.WriteLine("\nThe passenger between the age of " + lowAge + "-" + highAge + " years old are sitting on : "); for (int i = 0; i < sum_passengers; i++) { if(passengers[i] > lowAge || passengers[i] < highAge) { Console.WriteLine("\nSeat : " + passengers[i]); } } Console.WriteLine("Press any key to go to the menu"); Console.ReadKey();

vektorn ser ut såhär

public int [] passengers = new int [25]

Ja felet är i din ifkoll, du är väldigt nära men du har ett litet logiskt fel

Permalänk
Medlem
Skrivet av Xenofonus:

Ja felet är i din ifkoll, du är väldigt nära men du har ett litet logiskt fel

okej! tack! ska granska detta då!

Permalänk

if(passengers[i] > lowAge || passengers[i] < highAge)

kollar om åldern är högre än lowAge eller lägre än highAge, det borde vara "och" istället för "eller".

Permalänk
Medlem
Skrivet av Xenofonus:

Ja felet är i din ifkoll, du är väldigt nära men du har ett litet logiskt fel

Löste det med att sätta "&&" istället för "||", Tack för hjälpen!

Permalänk
Medlem

Exakt. Sedan kan du reflektera över din utskrift. Är det verkligen sätesnumret du skriver ut?

Permalänk

du har ett till logiskt fel.
om du söker passagerare mellan åldrarna 20-40 kommer du nu att kolla att dom är mellan 21-39. du kommer alltså inte att få med dom som är 20 eller 40 år vilket jag misstänker att du vill ha med.

Permalänk
Medlem

Är det bara jag som reagerar på användandet av "vektor"? En vektor är en riktning med magnitud, inte en array eller vad som nu beskrivs.

Permalänk
Medlem
Skrivet av Octo:

Är det bara jag som reagerar på användandet av "vektor"? En vektor är en riktning med magnitud, inte en array eller vad som nu beskrivs.

Vektor är synonymt med en array i programmering (åtminstone i C# som tråden handlar om), men man ser mest termen i läroböcker i min erfarenhet.

Permalänk
Medlem
Skrivet av Octo:

Är det bara jag som reagerar på användandet av "vektor"? En vektor är en riktning med magnitud, inte en array eller vad som nu beskrivs.

Vektor har en stor mängd olika betydelser, och inom programmering används termen ofta för 1-dimensionella arrayer eftersom det är så man brukar representera matematiska vektorer. I t.ex. C++ finns std::vector som är en datastruktur för 1-dimensionella dynamiska arrayer. På samma sätt benämns 2-dimensionella arrayer ibland som matriser.

Permalänk
Medlem
Skrivet av adzer:

Exakt. Sedan kan du reflektera över din utskrift. Är det verkligen sätesnumret du skriver ut?

Har korrigerat detta! God jul!

Permalänk
Medlem
Skrivet av interouse:

du har ett till logiskt fel.
om du söker passagerare mellan åldrarna 20-40 kommer du nu att kolla att dom är mellan 21-39. du kommer alltså inte att få med dom som är 20 eller 40 år vilket jag misstänker att du vill ha med.

if (passengers[i] >= lowAge && passengers[i] <= highAge)

Ändrade den igår, så jag hoppas den tar med talen man skriver in nu!

Permalänk
Medlem
Skrivet av Reyleigh:

Har korrigerat detta! God jul!

Kanon. God jul!