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.
Die Eingabe von beliebig vielen Zahlen in ein Array - ich kann es nicht
ich bin Azubi und soll in der Schule JAVA programmieren, habe ich aber bis jetzt
noch nie.
Wir arbeiten jetzt seit 2 Wochen mit Arrays und haben bis jetzt die Länge des Arrays
vordefiniert. so sieht das aus wenn ich die Länge des Arrays auf 5 definiere.
private static double[] zahl= new double[5];
nun möchte ich, dass der Benutzer des "Programms" die Möglichkeit hat, mehrere
Zahlen einzugeben anstatt die die ich vordefiniert habe.
er soll eingeben z B 5 und dann soll er 5 Zahlen nach der reihe eingeben (was soweit auch möglich ist, wenn ich die Länge des Arrays auf 100 einstelle, finde ich aber doof, weil mein Programm dann nicht richtig funktioniert - habe an einigen stellen in der for schleife index < array.length)
Der User gibt ein wieviele Zahlen er eingibt?
Indemfall kannst du ja einfach das Array erst während der Laufzeit anlegen, mit der vom User gewählten grösse!
dies wäre der Part, wo das mit der beliebigen Eingabe ist:
public static void neueZahlen() {
System.out.println("Geben Sie beliebig viele Zahlen ein");
int beliebig = kbd.nextInt();
for (int i = 0; i < beliebig; i++) {
System.out.println("Bitte die Zahl " +(i + 1) + " eingeben ");
zahl = Aufg.kbd.nextDouble();
}
kbd.nextLine();
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
}
die ist unterhalb der Länge des Arrrays.
nach deiner Lösung würde ich dies hier private static double[] zahl= new double[beliebig];
unter neueZahlen packen
public static void neueZahlen() {
System.out.println("Geben Sie beliebig viele Zahlen ein");
int beliebig = kbd.nextInt();
for (int i = 0; i < beliebig; i++) {
System.out.println("Bitte die Zahl " +(i + 1) + " eingeben ");
zahl = Aufg.kbd.nextDouble();
}
kbd.nextLine();
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
private static double[] zahl= new double[beliebig];
}
Die variable beliebig, ist die für die Anzahl Zahlen? Wenn ja, dann musst du das Array ganz oben erstellen, gleich nachdem du die Anzahl ausgelesen hast!
dies ist mein Code, könntest Du mir das vielleicht einmal zeigen? denn dann würde ich das sehen ich recherchiere seit einer Stunde und komme nicht weiter
Java:
import java.util.Scanner;
public class Aufg {
private static Scanner kbd = new Scanner (System.in);
private static double[] autos = new double[4];
public static void main (String [] args) {
char wahl;
do {
System.out.println("----------------------");
System.out.println("Menue \n");
System.out.println("1 - Neue Zahl eingeben \n");
System.out.println("2 - Aktuelle Zahlen ausgeben \n");
System.out.println("3 - Summer berechnen \n");
System.out.println("4 - Durchschnitt \n");
System.out.println("5 - Alle geraden Zahlen \n");
System.out.println("6 - Jede zweite Zahl \n");
System.out.println("7 - ENDE \n");
System.out.println("----------------------");
wahl = kbd.nextLine().charAt(0);
switch (wahl) {
case '1' : neueZahlen(); break;
case '2' : ausgabe(); break;
case '3' : summe(); break;
case '4' : durchschnitt(); break;
case '5' : geradeZahlen(); break;
case '6' : zweiterWert(); break;
case '7' : System.out.println("\n Das Programm wird beendet..."); return;
default : System.out.println("Achten Sie bitte auf das Menue und geben Sie richtige Werte ein \n");
}
}while (true);
}
public static void neueZahlen() {
System.out.println("Geben Sie beliebig viele Zahlen ein");
int beliebig = kbd.nextInt();
for (int i = 0; i < beliebig; i++) {
System.out.println("Bitte die Zahl " +(i + 1) + " eingeben ");
autos[i] = Aufg.kbd.nextDouble();
}
kbd.nextLine();
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
}
public static void ausgabe() {
System.out.println("Das sind die Zahlen, die Sie eingegeben haben: ");
for (int i = 0; i < autos.length; i++) {
System.out.println((i + 1) + ": " + autos[i]);
}
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
}
public static void summe() {
System.out.println("Die Summer der eingegebenen Zahlen: \n");
System.out.println(autos[0] + autos[1] + autos[2] + autos[3]);
System.out.println();
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
}
public static void durchschnitt() {
System.out.println("Der Durchschnitt der eingegebenen Zahlen");
double sum = 0, durchschnitt = 0;
for (int i = 0; i < autos.length; i++) {
sum += autos[i];
}
durchschnitt = sum / autos.length;
System.out.println(durchschnitt);
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
}
public static void geradeZahlen() {
System.out.println("Die Ausgabe aller geraden Zahlen: \n");
for (int i = 0; i < autos.length; i++) {
double gerade = autos[i] % 2;
if (gerade == 0) {
System.out.println(autos[i]);
}
}
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
}
public static void zweiterWert() {
System.out.println("Jede zweite Zahl lautet: \n");
System.out.println(autos[1]);
System.out.println(autos[3]);
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
}
}
public static void neueZahlen() {
System.out.println("Geben Sie beliebig viele Zahlen ein");
int beliebig = kbd.nextInt(); // Hier hast du die grösse des Arrays, oder?
autos = new double[beliebig]; // Hier machst du daraus dann das neue Array mit der gegeben grösse
for (int i = 0; i < beliebig; i++) {
System.out.println("Bitte die Zahl " +(i + 1) + " eingeben ");
autos[i] = Aufg.kbd.nextDouble();
}
kbd.nextLine();
System.out.println("Weiter mit ENTER...");
Aufg.kbd.nextLine();
}