Java array rückwärts?

Cwmystwyth  27.10.2021, 18:55

Wow. So viel Code! Was genau ist Deine Frage?

marienen2422 
Fragesteller
 27.10.2021, 19:36

Hat sich geklärt mit der Antwort von FaTech. Danke euch trotzdem. Wollte nur sichergehen ob das stimmt was ich gemacht habe

5 Antworten

import java.util.Scanner;

public class test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

probe p1 = new probe();

int zahlen[];

int o;

int u;

int l;

int z;

boolean weiter = true;

while(weiter == true) {

System.out.println("Geben sie eine Länge ein: ");

l = scan.nextInt();

System.out.println("Geben sie eine Obergrenzen: ");

o = scan.nextInt();

System.out.println("Wollen sie eine Untergrenze y/n?");

String a = scan.next();

if(a.equalsIgnoreCase("n")) {

zahlen = p1.fuellen(o, l);

System.out.print("[");

p1.ausgeben(zahlen);

System.out.print("]");

System.out.println("");

System.out.println("");

System.out.println("Wollen sie das Array rückwärts ausgeben lassen y/n?");

String a1 = scan.next();

if(a1.equalsIgnoreCase("y")){

System.out.print("[");

p1.rueckwaertsausgeben(zahlen);

System.out.println("]");

System.out.println("");

}

System.out.println("Wollen sie eine beliebige Zahl im Array finden y/n? ");

String a01 = scan.next();

if(a01.equalsIgnoreCase("y")) {

System.out.println("");

System.out.println("Geben sie eine Zahl ein, die sie im Array finden wollen: ");

z = scan.nextInt();

if(p1.finde(z, zahlen) == true) {

System.out.println("");

System.out.println("Ihre Zahl ist "+p1.finde_anz(z, zahlen)+" mal vorhanden und befindet sich an der Stelle "+ (p1.finde_pos(z, zahlen)+1));  

System.out.println("");

}

else {

System.out.println("Ihre Zahl ist nicht vorhanden ");

}

}

}

else {

System.out.println("Geben sie eine Untergrenze ein: ");

u = scan.nextInt();

zahlen = p1.fuellen(o, l, u);

System.out.print("[");

p1.ausgeben(zahlen);

System.out.print("]");

System.out.println("");

System.out.println("");

System.out.println("Wollen sie das Array rückwärts ausgeben lassen y/n?");

String a22 = scan.next();

if(a22.equalsIgnoreCase("y")){

System.out.print("[");

p1.rueckwaertsausgeben(zahlen);

System.out.println("]");

System.out.println("");

}

System.out.println("Wollen sie eine beliebige Zahl im Array finden y/n? ");

String a5 = scan.next();

if(a5.equalsIgnoreCase("y")) {

System.out.println("");

System.out.println("Geben sie eine Zahl ein, die sie im Array finden wollen: ");

z = scan.nextInt();

if(p1.finde(z, zahlen) == true) {

System.out.println("");

System.out.println("Ihre Zahl ist "+p1.finde_anz(z, zahlen)+" mal vorhanden und befindet sich an der Stelle "+ (p1.finde_pos(z, zahlen)+1));  

System.out.println("");

}

else {

System.out.println("Ihre Zahl ist nicht vorhanden ");

}

System.out.println("Wollen sie wissen ob ihre Zahl durch eine andere teilbar ista y/n?");

String an = scan.next();

if(an.equalsIgnoreCase("y")){

System.out.println("Geben sie eine Zahl zur Überprüfung ein: ");

int a2 = scan.nextInt();

if(p1.teilen(z, a2) == true) {

System.out.println("Ist teilbar");

}

else {

System.out.println("Ist nicht teilbar");

}

}

}

}

System.out.println("");

System.out.println("Wollen sie eine neue Liste erstellen y/n? ");

String a3 =scan.next();

if(a3.equalsIgnoreCase("n")) {

weiter = false;

System.out.println("Programm abgebrochen");

}

}

scan.close();

}

}

Marienburg16  28.10.2021, 09:39

import java.util.Random;

public class probe {

 

public int[] fuellen(int o, int l) {

int zahlen[] = new int[l];

Random rnd = new Random();

for(int x = 0; x<zahlen.length; x++) {

zahlen[x] = rnd.nextInt(o+1);

}

return zahlen;

}

public int[] fuellen(int o, int l, int u) {

int zahlen[] = new int[l];

Random rnd = new Random();

for(int x = 0; x<zahlen.length; x++) {

zahlen[x] = rnd.nextInt((o-u)+u)+1;

}

return zahlen;

public void ausgeben(int zahlen[]) {

for(int x = 0; x < zahlen.length; x++) {

System.out.print(zahlen[x]);

if(x != zahlen.length -1) {

System.out.print(", ");

}

}

}

public void rueckwaertsausgeben(int zahlen[]) {

int j = zahlen.length -1;

for(int x = 0; x<zahlen.length; x++) {

System.out.print(zahlen[j]);

j--;

if(x != zahlen.length -1) {

System.out.print(", ");

}

}

}

public boolean finde(int z, int zahlen[]) {

boolean found = false;

for(int x = 0; x<zahlen.length; x++) {

if(zahlen[x] == z) {

found = true;

}

}

return found;

}

public int finde_pos(int z, int zahlen[]) {

int pos = -1;

for(int i = 0; z != zahlen[i]; i++) {

pos++;

}

pos++;

return pos;

}

public int finde_anz(int z, int zahlen[]) {

int anz = 0;

for(int x = 0; x<zahlen.length; x++) {

if(zahlen[x] == z) {

anz++;

}

}

return anz;

}

public boolean teilen(int z, int a2){

boolean geht = false;

if(a2 % z == 0) {

geht = true;

}

return geht;

}

}

0

Statt for(...;...;i++) einfach for(...;...;i--) benutzen und runter zählen lassen. Dann fängt der hinten an

Zahlen aus altem Array rückwärts in neues Array einsetzen

public int[] flip(int zahlen[]) {

int flip[] = new int[zahlen.length]

int j = 0;

for (int x = zahlen.length-1; x >= 0; x--) {

flip[j] = zahlen[x];

j++;

}

return flip;

}

Zahlen aus altem Array rückwärts in neues Array einsetzen

public int[] flip(int zahlen[]) {

int flip[] = new int[zahlen.length]

int j = 0;

for (int x = zahlen.length-1; x >= 0; x--) {

flip[j] = zahlen[x];

j++;

}

return flip;

}

public int[] rueckwaerts(int[] zahlen) {

    int i = zahlen.length;
    i--;
    for (i = i; i >= 0; i--) {
        System.out.println(zahlen[i]);
    }
    return zahlen;

}

anonymxx03  27.10.2021, 19:09

vermutlich nicht der schnellste weg, allerdings ein funktionierender!

1
elRatto21  28.10.2021, 10:05

wat is dat denn

0