Array Methoden Aufruf.

Derenei

Aktives Mitglied
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.
 
Was bezweckt der Parameter
Code:
x
in der Methode
Code:
calcMinMax
?

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
 
Java:
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 " + (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]
 
Zuletzt bearbeitet:
das

[JAVA=25]private static int calcMinMax1 (int []a)[/code]

müsste so lauten

Java:
private static int[] calcMinMax1 (int []a)

Denn im ersten Fall wäre der Rückgabewert ein int, im zweiten Fall ein int-Array!
 
da steht doch sicherlich was von "found int[] but expected int".
Du gibst nen int Array zurück, die Methode hat aber einen int als Rückgabewert.
 
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]
 
Java:
       Out.println ("Maximaler eingegebener Wert: "+calcMinMax (a)+b [0]);
       Out.println ("Minimal eingegebener Wert: "+calcMinMax (a)+b [1]);
calcMinMax gibt dir nen Array zurück, dass du ausgeben willst. Warum rufst du die Methode nochmal auf? Hast du doch im Schritt vorher schon gemacht.
 
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.
 

Zurück
Oben