Methode mit Array als Param --> return Array --> Fehler

AlexFox

Mitglied
Hallo Leute,

ich habe ein Programm geschrieben, dass den kleinsten und größten Wert eines Arrays liest.
Enthalten ist eine Methode mit einem Array als Parameter und returned wird auch ein Array und trotzdem bekomme ich die Meldung: connot convert from int to int[].

Vielen Dank schonmal!
Java:
/**
 * Minmaxmethode SE11 AS
 * @author
 * @version 1.0/ 30.05.2012
 */

import java.util.Scanner;

public class Minmaxmethode 
{
  public final int anz = 21;
  	
  /**
   * retrieve a random number
   * @return random integer
   */
	
  public int[] randomNumber (int[] numbers)
  {
     for(int i=0; i<anz; i++)
    {
      numbers[i]=(int)(Math.random() * 1000+1);
      System.out.println(numbers[i]);
    }	
    return numbers;
  }
	
  /**
   * find out the maximum and minimum number of the array numbers
   * @param numbers
   * @return min, max
   */
	
  public int[] fetchMinMax (int[] numbers)
  {
	int minMax[] = new int[]{0,0};
    for(int i=0; i<numbers.length; i++)
    {
      // fetch maximum	
      if(minMax[0]<numbers[i])
      {
	    minMax[0]=numbers[i];
      }
      return minMax[0];
      
      // fetch minimum
      if(minMax[1]>numbers[i])
      {  
	    minMax[1]=numbers[i];
      } 
      return minMax[1];
    }
  }
	
  /**
   * a method to print the maximum and the minimum value of the array numbers
   * @param min, max
   * @return 
   */
	
  public void printMinMax (int[] minMax)
  {
    System.out.println("Der Minimalwert des Arrays ist: "+minMax[1]);
    System.out.println("Der Maximalwert des Arrays ist: "+minMax[0]);  
  }
  
  public int[] printArray (int[] numbers)
  {
    for(int i=0; i<anz; i++)
      System.out.println("Zahl["+i+"]"+numbers[i]);
    
    return numbers;
  }
    	  
  public static void main (String[] args)
  {
    Scanner eingabe=new Scanner(System.in);	
	int input=1;
	do
	{
		
	  //create an object on the class Minmaxmethode
	  Minmaxmethode x = new Minmaxmethode();
	  
	  //fetch a random number
	  int[] numbers = x.randomNumber(numbers);
	  
	  //find out the maximum and minimum number of the array numbers
	  x.fetchMinMax(numbers);
	  
	  //print the array on screen
	  x.printArray(numbers);
	  
	  //print the minimum and maximum of the array numbers
	  int[] minMax = x.printMinMax();
	  
	  System.out.println("Wenn SIe das Programm wiederholen wollen drücken sie 1!");
	  input=eingabe.nextInt();
	}while(input==1);
	System.out.println("ENDE!");
  }
}
 
Wäre zwar schön gewesen, du könntest sagen, wo der Fehler aufgetreten ist, aber egal.

Ich tippe mal auf das hier:
Java:
 public int[] fetchMinMax (int[] numbers)
  {
    int minMax[] = new int[]{0,0};
    for(int i=0; i<numbers.length; i++)
    {
      ...
      return minMax[0];
    }
  }
Fällt dir was auf? Erstens gibst du kein Array sondern nur eine einzige Zahl zurück, zweitens wird deine Schleife ja eh nur ein mal durchlaufen, mittendrin wird sie duch das return ja verlassen. Du musst die temporären Minima-Maxima-Werte irgendwo zwischensspeichern und erst nach dem Durchlaufen des gesamten Arrays ausgeben.

[EDIT]Achja, einen Compilerfehler der Art "unreachable Code" sollte es übrigens bei dir auch noch geben (Zeile 46ff).[/EDIT]

[EDIT]
[JAVA=95]int[] minMax = x.printMinMax();[/code]
Das geht auch nicht, weil die Methode printMinMax keinen Rückgabetyp (void) hat.
Da steckt schon noch einiges an Arbeit drin.[/EDIT]
 
Zuletzt bearbeitet:
besonders im Vergleich zu
> public int[] randomNumber (int[] numbers)
welche auch ein int[], hier erfolgreich, zurückgibt, vorher eins deklariert (edit: doch nicht, aber Parameter) und eine Schleife beinhaltet
 

Zurück
Oben