Programmering Java, nybörjaruppgift.

Trädvy Permalänk
Medlem
Registrerad
Maj 2016

Programmering Java, nybörjaruppgift.

Hej på er!

Sitter och försöker sammanställa min uppgift och få den klar men går inget vidare.

Problemet blir när jag ska samla ihop alla jämna tal och skriva ut dem, det går inte.

Är det någon som har något tips på hur koden kan se ut?

Trädvy Permalänk
Medlem
Plats
skåne
Registrerad
Jul 2010

Orkar inte riktigt förklara dina missar men överlag var du nära. Största missen var att du blandade ihop vad som var vad (o och jamntal

int nyarray = (int) lagringlada[o];

detta är helt tokigt pga:
1. o var indexet du löpte genom. jamntal är antalet jamna tal. Gissar att det var pga det som du inte avslutar for loopen där. Då skulle du inte fått använda o vilket hade varit det korrekta som sagt.
2. du försöker översätta en array till en int. Det är inte meningsfullt. Sen försöker du kolla om nyarray (som är en int) är skild från null vilket inte är lagligt då primitiva inte kan vara null.
3. Du ville göra en ny array med längden jamntal.

Rättade dina fel och ändrade lite nedan:

public static void main(String[] args) { Scanner text = new Scanner(System.in); System.out.println("Hur manga slumptal i intervallet 0 - 999 onskas?"); int tal = text.nextInt(); int[] lagringlada = new int[tal]; for (int i = 0; i < tal; i++) { lagringlada[i] = (int) (Math.random() * 999); } int jamntal = 0; for (int o = 0; o < tal; o++) { if (lagringlada[o] % 2 == 0) { jamntal++; } } int[] jamna = new int[jamntal]; int[] udda = new int[lagringlada.length - jamntal]; int jamnindex = 0; int uddindex = 0; for (int i : lagringlada) { if (i % 2 == 0) { jamna[jamnindex++] = i; } else { udda[uddindex++] = i; } } System.out.println("Här är slumptalen:"); for (int i : lagringlada) { System.out.print(i + " "); } System.out.println(); System.out.println("Dessa " + jamna.length + " tal är jämna: "); for (int i : jamna) { System.out.print(i + " "); } System.out.println(); System.out.println("Dessa " + udda.length + " tal är udda: "); for (int i : udda) { System.out.print(i + " "); } }

en bra tumregel att ha innan man blir bättre är att aldrig skriva så man får mer än ett kompileringsfel. Om man får fel från fel och inte vet vad de betyder kan det bli jobbigt. OM du använder eclipse så är ctrl+shift+f autoformatering. Använd det ofta och om du använder ett annat IDE ta reda på vad motsvarande kommando för det är. Jag använder for-each loopar i min lösning. Googla det eller fråga om du inte förstår. Man kan också bara hålla sig till en array och göra kontrollen om talen är jämna i print-looparna men du verkade försöka skapa fler arrayer så följde din lösning i viss mån och uppgiften säger att man ska så.

Be wiser than other people if you can; but do not tell them so.

►Jag förbehåller mig rätten att ha helt upp åt väggarna fel◄

Trädvy Permalänk
Medlem
Registrerad
Maj 2016

@Kogster: Stort tack för all hjälp!

Trädvy Permalänk
Medlem
Plats
skåne
Registrerad
Jul 2010
Skrivet av Marypary:

@Kogster: Stort tack för all hjälp!

lugnt. Citera mig om något är oklart om jag ska hitta tillbaka hit.

Be wiser than other people if you can; but do not tell them so.

►Jag förbehåller mig rätten att ha helt upp åt väggarna fel◄

Trädvy Permalänk
Medlem
Registrerad
Maj 2016

@Kogster: Absolut, efter några dagar med samma uppgift så blir det att fråga om hjälp så återigen tack