Ich versuche ein Programm zu schrieben wo ein Benutzer die größe eines Arrays bestimmen kann.
Und dann kann der Benutzer den Array wie groß er halt den Array gemacht hat werte zuweißen.
Zum Schluss soll der max eingegebene Wert und der min eingegebene Wert ausgegen werden. Das habe ich auch schon alles ich kann aber die Array Methode nicht aufrufen und finde auch keine Lösung hier mein Programm:
[Java]
/**
* Beschreiben Sie hier die Klasse Array_Übung.
*
* @author (A.P)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Array_Übung
{
public static void main (String[]args)
{
Out.print ("Wie viele Werte möchtem Sie im Array speichern: ");
int x = In.readInt ();
int [] a = new int [x];
int z = 1;
for (int i = 0; i < a.length; i++)
{
Out.print ("Zahl "+z+":");
a = In.readInt ();
z++;
}
calcMinMax (x, []a//hier liegt mein Problem);
}
private static void calcMinMax(int x, int []a)
{
int m = 0;
int max = 0;
int min = 0;
for (int i = 0; i < a.length; i++)
{
i++;
m++;
if (m <= 1)
{
max = a;
min = a;
}
if (a > max)
{
max = a;
}
if (a < min)
{
min = a;
}
}
Out.print ("maximum: "+max);
Out.println ();
Out.print ("minimum: "+min);
}
[/Java]
Könntet ihr mir sagen was ich da falsch mache?
Danke im Voraus.
Nach dem Minimum/Maximum suchen kannst du folgendermaßen:
- erstes Element des Arrays als 'min' und 'max' speichern
- innerhalb der for-Schleife jedes weitere Element mit min/max vergleichen
publicstaticvoid main (String[]args){Out.print ("Wie viele Werte möchtem Sie im Array speichern: ");int x =In.readInt ();int[] a =newint[x];//int z = 1;for(int i =0; i < a.length; i++){Out.print ("Zahl "+(i+1)+":");
a[i]=In.readInt ();//z++;}
calcMinMax (x, a);//einfach a reinschieben, es ist ja ein int-Array}
das z kannst du weglassen, da in deiner Schleife das i ja auch als Zähler dient.
Hab jetzt noch ein Problem jetzt habe ich die Werte max und min in einen Array gespeichert.
Wenn ich jetzt den Array in einem return zurückgeben will steht wenn ich übersetzen drücke incompatible types found int but excepted int. Wiese ich ein int mit einem int nicht kompatibel. Hier mein Quellcode:
[Java]
/**
* Beschreiben Sie hier die Klasse Array_Übung.
*
* @author (A.P)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Array_Übung
{
public static void main (String[]args)
{
Out.print ("Wie viele Werte möchtem Sie im Array speichern: ");
int x = In.readInt ();
int [] a = new int [x];
int z = 1;
for (int i = 0; i < a.length; i++)
{
Out.print ("Zahl "+z+":");
a = In.readInt ();
z++;
}
}
private static int calcMinMax1 (int []a)
{
int m = 0;
int max = 0;
int min = 0;
for (int i = a.length-1; i >= 0; i--)
{
m++;
if (m <= 1)
{
max = a;
min = a;
}
if (a > max)
{
max = a;
}
if (a < min)
{
min = a;
}
}
int [] b = new int [1];
b [0] = max;
b [1] = min;
return b//Hier liegt das Problem;
}
}
[/Java]
Mein Programm hat jetzt zwar keine Syntax Fehler wenn ich aber jetzt in der Konsole 1 2 3 eingebe wird in der Konsole
max: I@1fa39bb3 ausgegeben bei min: ist es genau sowas ich habe jetzt keine Idee was das jetzt für ein Problem ist.
Hätte wer eine Idee?
Danke für Eure Hilfe
Quellcode:
[Java]
/**
* Beschreiben Sie hier die Klasse Array_Übung.
*
* @author (A.P)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Array_Übung
{
public static void main (String[]args)
{
Out.print ("Wie viele Werte möchtem Sie im Array speichern: ");
int x = In.readInt ();
int [] a = new int [x];
int z = 1;
for (int i = 0; i < a.length; i++)
{
Out.print ("Wert "+z+":");
a = In.readInt ();
z++;
}
int [] b = calcMinMax (a);
Out.println ("Maximaler eingegebener Wert: "+calcMinMax (a)+b [0]);
Out.println ("Minimal eingegebener Wert: "+calcMinMax (a)+b [1]);
}
private static int[] calcMinMax (int []a)
{
int m = 0;
int max = 0;
int min = 0;
for (int i = a.length-1; i >= 0; i--)
{
m++;
if (m <= 1)
{
max = a;
min = a;
}
if (a > max)
{
max = a;
}
if (a < min)
{
min = a;
}
}
int [] b = new int [2];
b [0] = max;
b [1] = min;
return b;
}
}
[/Java]
Hätte jetzt noch eine Frage habe bis jetzt Methoden mit Arrays mit: z.b private static int[] MaxMin ( []a) aufgerufen, diese hatten aber auch immer einen Rückgabewert. Wollte vorher dieses Methode mit Arrays mit void einfach nur aufrufen ging aber nicht. Geht das überhaupt und wenn ja wie?
Danke im Voraus.