Just nu i M3-nätverket
Gå till innehåll

Dela upp tal från en array till två nya arrayer


Lemorz

Rekommendera Poster

Hej.

 

Har en array med ett antal tal slumpade mellan 0 - 999.

 

Vill nu förutom att skriva ut alla slumpade tal även skriva ut talen i intervallet 0-499 samt intervallet 500-999.

 

Har skapat två arrayer med det antal platser som behövs beroende på hur många tal som är över resp under 500. Det jag behöver hjälp med är att få in talen från arrayen med alla tal till de andra arrayerna.

 

Tar helst endast emot hjälp, inte en färdig lösning då jag vill lära mig och förstå hur det fungerar.

 

 

Min kod:

 

public static void main(String[] args) {


	//Deklarera variabler

	int amountOfNumbers;
	int [] allNumbers;
	int lowCount = 0;
	int highCount = 0;
	Scanner keyboard = new Scanner(System.in);
	//Inmatning

	System.out.print("Hur många slumptal i intervallet 0-999 önskas? ");
	amountOfNumbers = keyboard.nextInt();
	allNumbers = new int [amountOfNumbers +1];

	//Bearbetning & Utskrift

	System.out.println();
	System.out.print("Här är de slumpade talen: ");
	System.out.println();

	for (int i = 1; i < allNumbers.length; i++)
	{
		allNumbers[i] = (int)(Math.random()*999);

		System.out.print(allNumbers[i] + " ");
	}


	for (int i = 1; i < allNumbers.length; i++)
	{
		if (allNumbers[i] < 500)
		{
			lowCount++;

		}
		if (allNumbers[i] >= 500)
		{
			highCount++;
		}
	}

	int[] lowNumbers = new int[lowCount];
	int[] highNumbers = new int[highCount];

	System.out.println();
	System.out.println();
	System.out.print ("Dessa " + lowCount + " tal är i intervallet 0 - 499");
	System.out.println();

	System.out.println();
	System.out.println();
	System.out.print("Dessa " + highCount + " tal är i intervallet 500 - 999");
	System.out.println();



}

}

Länk till kommentar
Dela på andra webbplatser

Att dela upp talen i två arrayer är ganska likt att räkna hur många tal som ska finnas i varje array. Är det en lagom ledtråd?

Länk till kommentar
Dela på andra webbplatser

Att dela upp talen i två arrayer är ganska likt att räkna hur många tal som ska finnas i varje array. Är det en lagom ledtråd?

 

Haha. Ja, det skulle man ju kunna tycka. Har förstått så pass mycket att jag vet att jag kan använda mig av i princip samma/liknande if-satser som jag använde för att räkna antalet tal och att jag istället för att räkna upp antalet ska lägga in talen i resp array, det jag inte förstår är hur detta ska gå till.

Länk till kommentar
Dela på andra webbplatser

Komplettera din kod med for- och if-satserna så får vi se hur det ser ut sedan.

 

Har hållt på bra nog länge nu och inte kommit längre. Kan plocka ut talen från källarrayen, men lyckas inte få till det så att talen istället delas upp på de två andra arrayerna för att sen kunna skriva ut talen därifrån.

Länk till kommentar
Dela på andra webbplatser

Visa hur din kod ser ut nu.

 

public static void main(String[] args) {


	//Deklarera variabler

	int [] allNumbers;
	int lowCount = 0;
	int highCount = 0;
	Scanner keyboard = new Scanner(System.in);
	//Inmatning

	System.out.print("Hur många slumptal i intervallet 0-999 önskas? ");
	int amountOfNumbers = keyboard.nextInt();
	allNumbers = new int [amountOfNumbers +1];

	//Bearbetning & Utskrift

	System.out.println();
	System.out.print("Här är de slumpade talen: ");
	System.out.println();


	for (int i = 1; i < allNumbers.length; i++)
	{
		allNumbers[i] = (int)(Math.random()*1000);

		System.out.print(allNumbers[i] + " ");
	}

	int[] lowNumbers = new int[lowCount];
	int[] highNumbers = new int[highCount];


	for (int i = 1; i < allNumbers.length; i++)
	{
		if (allNumbers[i] < 500)
		{
			lowCount++;

		}
		if (allNumbers[i] >= 500)
		{
			highCount++;
		}
	}

	for (int i = 1; i < allNumbers.length; i++)
	{
		if (allNumbers[i] < 500)
		{
			lowNumbers[lowCount] = allNumbers[i];
		}
		if (allNumbers[i] >= 500)
		{	
			highNumbers[highCount] = allNumbers[i];
		}	

	}

	System.out.println();
	System.out.println();
	System.out.print ("Dessa " + lowCount + " tal är i intervallet 0 - 499");
	System.out.println();

	System.out.println();
	System.out.println();
	System.out.print("Dessa " + highCount + " tal är i intervallet 500 - 999");
	System.out.println();



}

}

Länk till kommentar
Dela på andra webbplatser

lowNumbers[lowCount] = allNumbers;

 

Innebär ju att det alltid är samma index i arrayen lowNumbers som får ett värde. Du behöver ha ett index-värde som ändrar sig.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...