Hab hier ein kleines problem: und zwar soll ich eine programm schreiben dass ein Array einliest und überprüft, ob und in welcher Weise das Array sortiert ist. Folgende Fälle sollen dabei unterschieden werden:
! Das Array ist leer.
! Alle Elemente sind gleich.
! Die Elemente sind aufsteigend sortiert.
! Die Elemente sind absteigend sortiert.
! Die Elemente sind unsortiert.
Zum Einlesen eines Arrays können Sie folgende Methode verwenden:
static int[] readArray(int n) {
if (n<0) {
return null;
}
int[] arr = new int[n];
if (n>0) {
for (int i=0; i<n; i++) {
arr = IO.readInt();
}
IO.readLn();
}
return arr;
}
Bsp. Ausgabe:
Number of elements (negative value to quit): 0
Array is empty.
Number of elements (negative value to quit): 3
Elements: 1 1 1
All elements are equal.
Number of elements (negative value to quit): 5
Elements: 1 3 6 6 7
Elements are in ascending order.
Number of elements (negative value to quit): 4
Elements: 4 0 -5 -10
Elements are in descending order.
Number of elements (negative value to quit): 5
Elements: 1 4 2 1 0
Elements are unordered.
Number of elements (negative value to quit): -1
Hier ist mal der code den ich bis jetzt habe:
Irgendwie hab ich das problem dass er mir die ausgabe in welcher form er es ausgibt öfters ist wie einmal ist....
Hat da wer einer ne idee wie es geht... ?
! Das Array ist leer.
! Alle Elemente sind gleich.
! Die Elemente sind aufsteigend sortiert.
! Die Elemente sind absteigend sortiert.
! Die Elemente sind unsortiert.
Zum Einlesen eines Arrays können Sie folgende Methode verwenden:
static int[] readArray(int n) {
if (n<0) {
return null;
}
int[] arr = new int[n];
if (n>0) {
for (int i=0; i<n; i++) {
arr = IO.readInt();
}
IO.readLn();
}
return arr;
}
Bsp. Ausgabe:
Number of elements (negative value to quit): 0
Array is empty.
Number of elements (negative value to quit): 3
Elements: 1 1 1
All elements are equal.
Number of elements (negative value to quit): 5
Elements: 1 3 6 6 7
Elements are in ascending order.
Number of elements (negative value to quit): 4
Elements: 4 0 -5 -10
Elements are in descending order.
Number of elements (negative value to quit): 5
Elements: 1 4 2 1 0
Elements are unordered.
Number of elements (negative value to quit): -1
Hier ist mal der code den ich bis jetzt habe:
Code:
public class Main {
static int[] readArray(int n)
{
if (n<0)
{
return null;
}
int[] arr = new int[n];
if(n>0)
{
for(int i=0; i<n; i++)
{
arr[i] = IO.readInt();
}
IO.readLn();
}
return arr;
}
public static void main(String[] args) {
int [] zahlen;
IO.writeLn("Number of elements (negative value to quit): ");
int a=IO.readInt();
if(a==0){IO.writeLn("Array is empty.");}
else {
IO.writeLn("Elements: ");
zahlen = readArray(a);
for(int i=0;i<=a;i++)
{
for(int n=i+1;n<=a;n++)
{
if(zahlen[i]==zahlen[n])
{ IO.writeLn("All elements are equal.");}
else
if(zahlen [i]<=zahlen[n])
{IO.writeLn("Elements are in ascending order. ");}
else
if(zahlen [i]>=zahlen[n])
{IO.writeLn("Elements are in descending order. ");}
else
{IO.writeLn("Elements are unordered. ");}
}
}
}
}
}
Irgendwie hab ich das problem dass er mir die ausgabe in welcher form er es ausgibt öfters ist wie einmal ist....
Hat da wer einer ne idee wie es geht... ?