5 svar
82 visningar
I am Me är nöjd med hjälpen
I am Me 683
Postad: 21 okt 2022 06:19 Redigerad: 21 okt 2022 06:29

Hur vet man att man behöver skicka den sista parameten alltså int nrOfDieValues?

Förstod inget av det här koden:( . Vad är fel och varför skickar man den sista parametern?

Vad händer i rad 12? Och varför sätter man allt till noll i rad 15. 

haraldfreij 1315
Postad: 21 okt 2022 08:11

Notera att programmet ju innehåller fem fel, så det är rimligt att du tycker det ser konstigt ut på sina ställen.

På rad 12 deklareras en array av intar, som av namnet att dömma ska innehålla hur många slag du fått av respek Hur lång är den?

På rad 15 nollställs samma array, eftersom en array inte automatiskt nollställs när den skapas, så den kan innehålla vilka heltal som helst.

Idén bakom programmet är enkel:

  1. Skapa en array som håller tärningarnas värden
  2. Slumpa ut värden för respektive tärning
  3. Skapa en array som håller antalet slag med respektive värde
  4. Räkna slagen till arrayen från 3.
  5. Kolla igenom arrayen efter om du fått något tretal
  6. Skriv ut resultatet.

Titta efter syntaxfel, indenteringesfel och, kanske framförallt (eftersom ingen kompilator eller formatterare kan hjälpa dig med det), logikfel.

anders_k Online 234
Postad: 21 okt 2022 09:09

Vad är fel och varför skickar man den sista parametern?

Vad händer i rad 12? Och varför sätter man allt till noll i rad 15.

finn fem fel :)

sista parameter är antal sidor en tärning har - det är väl för att man skall kunna använda den i D&D också.

i rad 12 gör man en array där index motsvarar värdet på tärningens sida.  man har gjort arrayen lite större så att man direkt kan använda tärningens värde som index, arrayer börjar ju på index 0 i C.  alternativet hade varit att köra med värden [0,5]

Man sätter allt till noll i rad 15 för att man vill använda arrayen för att räkna antalet tärningar med samma värde.

rullar du 1,2,2,3,5 så räknas nrOfEachDieValue[1],nrOfEachDieValue[2],nrOfEachDieValue[3],nrOfEachDieValue[5] upp

Fermatrix 7841 – Fd. Medlem
Postad: 21 okt 2022 09:16 Redigerad: 21 okt 2022 09:16

Läs igenom denna tråden igen: https://www.pluggakuten.se/trad/har-inte-riktigt-forstatt-falt-konsenpten/

Så tror jsg du ser något olagligt (Enligt kompilatorn) i main, eller hur? 

De andra fyra får du beta dig igenom med lite tålamod. :)

I am Me 683
Postad: 21 okt 2022 11:19
haraldfreij skrev:

Notera att programmet ju innehåller fem fel, så det är rimligt att du tycker det ser konstigt ut på sina ställen.

På rad 12 deklareras en array av intar, som av namnet att dömma ska innehålla hur många slag du fått av respek Hur lång är den?

På rad 15 nollställs samma array, eftersom en array inte automatiskt nollställs när den skapas, så den kan innehålla vilka heltal som helst.

Idén bakom programmet är enkel:

  1. Skapa en array som håller tärningarnas värden
  2. Slumpa ut värden för respektive tärning
  3. Skapa en array som håller antalet slag med respektive värde
  4. Räkna slagen till arrayen från 3.
  5. Kolla igenom arrayen efter om du fått något tretal
  6. Skriv ut resultatet.

Titta efter syntaxfel, indenteringesfel och, kanske framförallt (eftersom ingen kompilator eller formatterare kan hjälpa dig med det), logikfel.

Vad menar du med det du skrev i punkt4. Det ska räkna bara de värde som är lika med 3 .Ellehur?

haraldfreij 1315
Postad: 25 okt 2022 09:15

Jag separerade skapandet av arrayen (3) från fyllandet (4). I det läget tittar vi på alla värden, inte bara 3:or. Ett tretal är ju tre av samma, oavsett vilket värde. Alltså: om du slår 0, 2, 2, 4, 2 (notera att tärningarna går från 0-5 istället för 1-6) så ska dice bli [0, 2, 2, 4, 2], nrOfEachDieValue ska bli [1, 0, 3, 0, 1, 0] och isThreeOfAKind ska returnera true.

Svara Avbryt
Close