int-Feld in zwei Felder aufteilen

H

heidlero90

Gast
hallo
in der uni wurde uns eine aufgabe gestellt mit unter anderem diesem unterpunkt:

Definieren Sie zwei int-Felder. Im Ersten sollen nur die Eintrage, die kleiner als
der Mittelwert sind, eingetragen werden, die restlichen Werte sollen im zweiten
Feld eingetragen werden. Geben Sie beide Felder wie unter 3. auf stdout aus.
Hinweis: Zahlen Sie zuerst die Eintrage die kleiner sind als der Mittelwert und
legen dann das Feld mit der entsprechenden Groeße an.

informatik is überhaupt nicht mein fall und ich weiß auch nicht was ich damit anfangen soll... in den vorlesungen hab ich auch nicht wirklich viel kapiert könnte mir bitte jmd helfen ich bin echt ahnungslos
falls es wichtig ist das feld dass wir davor definieren sollten enthält 10 zahlen
 
Zuletzt bearbeitet von einem Moderator:
H

heidlero90

Gast
ich studier sowas ähnliches wie wirtschaftsingenieur bloß mit bissl mehr maschinenbau ;-)
den mittelwert vom 1.feld hab ich schon ja bloß keine ahnung was ich jetzt machen soll
 
S

SlaterB

Gast
poste doch bisschen Code, die gegebene/ frühere Array-Deklaration und wie du den Mittelwert erhälst

fange als nächstes mit
> Definieren Sie zwei int-Felder.
an, schon zu schwer?
 

ARadauer

Top Contributor
jup genau,
machst dir deine zwei arrays.. dann iterierst du über deine felder, (was du ja kannst, das hast für den mittelwert schon gebraucht)
und wenn die zahl kleiner als der mittelwert dann ins eine und sonst ins andere einfügen...

das problem ist nun, wie fügst du ein? du hast einfach zwei weitere variablen die dir die akutelle position in den ergebnis arrays angeben. wenn du and die aktuelle stelle einfügst, dann erhöhst du diesen zähler...
 
H

heidlero90

Gast
Java:
public static void main(String[] args) {
		int[] Feld = { 4, 12, 44, 2, 3837, 111, 27, 95, 9, 583 };
		System.out.print("Feld: ");
		for (int i = 0; i < 10; ++i) {
			System.out.print(" " + Feld[i]);

double summe = 0;
		for (int i = 0; i < Feld.length; i++)
			summe = summe + Feld[i];
		System.out.println("Mittelwert: " + summe / 2);

ich verstehe nicht wie ich alle werte die kleiner sind als dieser mittelwert in ein neues feld eingeben lassen kann. manuell klappts irgendwie auch nicht...
 
Zuletzt bearbeitet von einem Moderator:

ARadauer

Top Contributor
1. Variablen klein schreiben
2. Als Anfänger immer alle { und } machen.. die erst for wird nicht geschlossen

ach mittelwert ist die summe / 2?
Naja Mittelwerte gibt es ja einige, aber bei uns ist doch der Mittelwert der Durchschnitt oder? Summe / Anzahl ?
 
H

heidlero90

Gast
du hast recht, ich muss natürlich durch 10 teilen
der code wie ich ihn reinkopiert hab funktioniert, hab nur den teil der von belang is genommen, die klammern sind nich das problem
 
H

heidlero90

Gast
ja klar summe/anzahl weiß net was mich da geritten hat ^^also
Java:
 int array = new int[anzahl werte kleiner mittelwert];
int array1 = new int[anzahl werte größer mittelwert];
for (int i = 0; i < Feld.length; i++) [code=Java]
oder? und dann?
 
S

SlaterB

Gast
[ JAVA] code [/ JAVA] heißt es, wie es in der roten Schrift steht,
wenn man als anonymer nicht mehr editieren kann ist die Vorschau auch mal anzuschauen..

> anzahl werte kleiner mittelwert]
ist gar nicht so leicht, für den Anfang nimm lieber die Länge des Original-Arrays

in der Schleife dann für jedes Element entscheiden wohin es gehört, if/else sicher bekannt?
 

casio_O

Neues Mitglied
Mir war heute langweilig...

Java:
public class Test {

	public static void main(String[] args) {
		
		 int[] werte = { 4, 12, 44, 2, 3837, 111, 27, 95, 9, 583 };
		 
		 int mittelWert = 0;
		 
		 for (int i : werte ) {
			mittelWert += i;
		 }

		 mittelWert /= werte.length;
		 System.out.println( "Mittelwert: " + mittelWert );
		 
		 int k = 0;		 
		 for (int i : werte ) {
			 if( i < mittelWert ) k++;
		 }
		 
		 int[] feld1 = new int[k];
		 int[] feld2 = new int[werte.length-k];
		 
		 int i1 = 0;
		 int i2 = 0;
		 for ( int i : werte) {
			 if( i < mittelWert ) {
				 feld1[i1] = i;
				 i1++;
			 } else {
				 feld2[i2] = i;
				 i2++;
			 }
		 }
		 
		 System.out.println( "Werte < Mittelwert" );
		 for (int i : feld1 ) {
			System.out.println( i );
		 }
		 
		 System.out.println( "Werte >= Mittelwert" );
		 for (int i : feld2 ) {
				System.out.println( i );
		 }		 
		 
	}

}
 
H

heidlero90

Gast
danke schon mal dafür, das hat mir viel geholfen. was muss ich für "werte" eingeben, das versteh ich nicht, sind rot.
und bei int : ...... weiß ich auch nicht was reinmuss...
 
S

SlaterB

Gast
> was muss ich für "werte" eingeben
wieso irgendwo was eingeben? das Array wird deklariert, werte ist der Name der Variablen wie Feld vorher bei dir

> for (int i : werte ) {
ist eine besondere Art der Schleife, kannst auch wieder for (int i= .. verwenden
 

Neue Themen


Oben