Java Arrays < Algorithmen < Schule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 13:39 Do 22.05.2014 | Autor: | Benko |
Aufgabe | Schreiben Sie ein Programm, dass die zwei forlgenden Methoden enthält:
a,Schreiben Sie eine Methode ausfuellen(int von, int bis), die die geraden Zahlen, die zwischen von und bis sind, in einem Array speichert.
Hinweis: DIe Zahlen von und bis sollen bei Aufruf der Methode als Parameter übergeben und vorher von der Konsole abgefragt werden.
b, Schreiben Sie eine zweite Methode ausgeben(int[]Array), die alle Array-Elemente auf der Konsole ausgibt.
Hinweis: DIe Länge eines Arrays kann man mit Hilfe der folgenden Anweisung abfragen: int laenge=Array.length; |
Also ich habe das Prg. wie folgt geschrieben, leider kann ichs nich kompilieren, wegen bugs. Kann mir jmd sagen was ich machen muss, dass es funzt? Bin über zielführende Hinweise dankbar! VG Benko
import java.util.Scanner;
public class A2 {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
System.out.println("Geben Sie Sie eine Zahl von ein:");
int von = scan.nextInt();
System.out.println("Geben Sie eine Zahl bis ein:");
int bis = scan.nextInt();
int array[];
array = ausfuellen(von, bis); // int[] steht für ein eindimensionales
// Array-->Methode "ausfuellen" wird
// erstellt
anzeigen(array);
}
public static int[] ausfuellen (int von, int bis){ //Methode ausfuellen
int laenge= (bis-von)/2+1; //Anzahl der benötigten Plätze im Array, +1 weil sonst immer ein Platz zu wenig!
int array []; // oder was auch mgl. is:" int []array= new int[laenge];"
array =new int[laenge];
if(von%2!=0){
von+=1;
}
for (int index=0;index<laenge;index++){
array[index]=von;
von=von+2;
return array;
}
public static void anzeigen (int []array){
laenge =array.length;
for (int index=0;index<laenge;index++){
System.out.println (array[index]); }
}
}
}
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:13 Do 22.05.2014 | Autor: | DieAcht |
Hallo Benko,
1) Bei deiner Methode "ausfuellen" muss du erst das Array returnen, wenn die For-Schleife zu Ende ist.
2) Über deiner Methode "anzeigen" fehlt eine geschweifte Klammer.
3) Es muss heißen: int laenge=array.length;
4) Eine geschweifte Klammer zu viel ganz am Ende.
Das Programm sollte so funktionieren, aber vieles kannst du noch "optimieren" bzw. schöner programmieren, aber du hast als Zeitraum nur eine Stunde angegeben, sodass es wohl nicht mehr so viel Sinn macht.
Gruß
DieAcht
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:26 Do 22.05.2014 | Autor: | Benko |
Danke Acht, es funzt nun!
|
|
|
|