Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich möchte ein Programm schreiben, dass solange Zahlen in Array der Größe 20 einliest bis eine negative Zahl eingeben wird.
Dabei muss natürlich geprüft werden, ob die Zahl schon vorhanden oder ob das Array schon voll ist. Wenn das Array voll ist, soll es ausgeben werden mit Zahl, Zahl,....
Mein Vorschlag:
Java:
import java.util.*;
public class Duplikatvermeidung{
public static void main(String [] args){
Scanner ein=new Scanner(System.in);
int feld [] = new int[20];
int zaehler=0;
int eingabe=0;
boolean da=false;
for(int i=0; i<feld.length; i++){
feld[i]=-1;
}
do{
eingabe=ein.nextInt();
if(zaehler<20){
for(int i=0; i<feld.length; i++){
if(eingabe==feld[i]){
da=true;
}
}
if(da!=true){
feld[zaehler]=eingabe;
zaehler++;
}
}
else{
System.out.println("voll");
}
}
while(eingabe>=0);
for(int i=0; i<feld.length; i++){
System.out.print(feld[i] +",");
}
}
}
Das funktioniert nicht. Wenn ich z.b 7 eingebe, wird mein Anfangsarray ausgegeben. Wo liegt der Fehler?
Oh ja stimmt
Danke.
Ok ich habe gleich mal noch while( eingabe >=0); also zu >= umgewandelt.
Wenn ich folgende Zahlen teste:
0
1
2
3
2
1
1
7
5
7
4
-1
Ausgabe:0,1,2,3,-1,
Aber wo ist die 7 zb. hin?
Aso.Ich habe jetzt da=false; ganz unten vor das while gestellt. Es geht dann. Soll ich es vllt lieber woanders positionieren?
Die Aufgabe war dann so formuliert:
eine Fehlermeldung (Ausgabe voll) ausgibt (das Programm aber nicht beendet!), wenn versucht wird mehr als 20 verschiedene Werte einzugeben
Das voll wird bei mir erst angezeigt, wenn ich eine negative Zahl eingebe, aber es soll schon ab dem 20. Element angezeigt werden. Wie mache ich das?
Edit:
Ne egtl stimmt das so. Nur das Problem ist, wenn ich eine negative Zahl eingebe, dann wird "voll" nochmal ausgeben. Das will ich nicht
Also was ist jetzt das Problem? Wenn du eine negative Zahl eingibst, das Array aber schon voll ist, dann wird "voll" ausgegeben - das willst du aber nicht?
Ja genau.
Die Aufgabe sagt ja
eine Fehlermeldung (Ausgabe voll) ausgibt (das Programm aber nicht beendet!), wenn versucht wird mehr als 20 verschiedene Werte einzugeben
D.h nach dem 20. Wert kommt voll, dann gebe ich weitere Werte ein und wenn ich dann z.b -1 eingebe, werden die Zahlen ausgeben.
Verstehst du was ich meine