Array mit Zahlen die durch 3 und 5 teilbar sind erstellen

HansPeter75

Mitglied
Hallo ich bräucht mal eure Hilfe. Ich bin Anfänger und hab noch kein richtigen Plan.

Es liegt folgende Aufgabenstellung vor:

-Füllen Sie ein Array von Typ int mit den ersten 100 natürlichen Zahlen, die weder durch
drei noch durch fünf teibat sind.
-Geben Sie die Zahlen in umgekehrter Reihenfolge aus und zwar erst die geraden, dann die ungeraden.

Habe es mir so gedacht:
Java:
public class ArraySor
{  
  public static void main(String[] args)
  {
    int x;
    int i;
    int j;
    int m;
    int array [] = new int [100];
   
    for(x = 0, m=0; m < array.length; x++,m++)
    {
      if (x%3 != 0 & x%5 != 0)
      {
        array[m]= x;
      }
    } //end of for
     
    for(j=0;j<array.length;j++)
    {
            if( array[j] % 2!=0)
            {
               System.out.println(array[array.length-1 -j]);
            }
    }  // end of for
   
    for(i=0;i>array.length;i=i++)
    {
           if(array[i] % 2==0)
           { 
             System.out.println(array[array.length-1 -i]);
           }
    }  // end of for 
  }
}

Die Ausgabe die erhalte sieht so aus:
Java:
82
0
76
0
68
62
58
56
52
0
46
0
38
32
28
26
22
0
16
0
8
2

Wo kommen die Nullen her und warum gibt er mir nicht die ungeraden Zahlen aus?

Ein Fehler wird mir nicht angezeigt!
 
Hallo.

Zu den Nullen erstmal:

Java:
int array [] = new int [100];

Defaultmäßig hast du jetzt ein Array voller 0.

und m sollte nur erhöht werden wenn deine bedingung zutrifft.

Grüße
 
Du erhöhst bei jedem Durchlauf m trägst aber nicht immer etwas in das Array ein.
Da das Array am Anfang nur mit 0 befüllt ist kommen die 0 zustande.

Edit: Ups zu langsam.
 
Java:
for (i = 0; i > array.length; i = i++)
Das solltest du dir noch mal anschauen.
Wird die Schleife jemals durchlaufen?
 
Die Nullen sind jetzt weg und er füllt das Array wie es sein soll!Danke🙂
Habt ihr noch ein Tipp für die Ausgabe?

Code:
public class ArraySor
{  
  public static void main(String[] args)
  {
    int x;
    int i;
    int j;
    int m=0;
    int array [] = new int [100];
   
    for(x = 0; m < array.length; x++)
    {
      if (x%3 != 0 & x%5 != 0)
      {
       
        array[m]= x;
        m++;
      }
    } //end of for
     
    for(j=0;j<array.length;j++)
    {
            if( array[j] % 2!=0)
            {
               System.out.println(array[array.length-1 -j]);
            }
    }  // end of for
   
    for(i=0;i>array.length;i=i++)
    {
           if(array[i] % 2==0)
           { 
             System.out.println(array[array.length-1 -i]);
           }
    }  // end of for 
  }
}
 
Bin jetzt dabei das Array zu sortieren aber hänge fest vieleicht könnt ihr mir ein Tipp geben.
Code:
 int n=array.length;
      for (i=0; i < n-1; i=i+1)  {       
        for (j=n-1; j > i; j=j-1) {
          if (array[j]%2==0 )               
         {
        
            temp = array[j];               
            temp2 = array[i];               
            array[i] = temp;
            array[j] = temp2;

         }
      }
    }
 
Die Aufgabe ist:
-Geben Sie die Zahlen in umgekehrter Reihenfolge aus und zwar erst die geraden, dann die ungeraden.

Meinst du mit Sortierverfahren Bubblesort und Quicksor usw..?
Wenn ja dann hab kein bestimmtes gewählt.
Hab probiert mein eigenes verfahren zu schreiben^^
siehe hier
Code:
 int n=array.length;
      for (i=0; i < n-1; i=i+1)  {     
        for (j=n-1; j > i; j=j-1) {
          if (array[j]%2==0 )             
         {
      
            temp = array[j];             
            temp2 = array[i];             
            array[i] = temp;
            array[j] = temp2;

         }
      }
    }

Damit sortiert er mir die geraden Zahlen in eine Reihe aber die ungeraden Zahlen sind noch unsortiert.#
Jetzt ist die frage wie ich die auch noch sortieren kann?

Oder gibt es vieleicht eine einfachere Lösung?
 
Damit sortiert er mir die geraden Zahlen in eine Reihe aber die ungeraden Zahlen sind noch unsortiert.#
Jetzt ist die frage wie ich die auch noch sortieren kann?

Oder gibt es vieleicht eine einfachere Lösung?

Wenn man so recht überlegt ist das Array schon korrekt sortiert. Man muss garnicht die gerade und ungerade Zahlen sortieren.

Beispiel:

Java:
    print(array, 0);
    print(array, 1);

    private static void print(int array[], int n) {
        for (int i = array.length - 1; i > 0; i--) {
            if (array[i] % 2 == n) {
                System.out.print(array[i] + " ");
            }
        }
        System.out.println();
    }

Du hast ja die Zahlen aufsteigend in das Array befüllt.
 

Neue Themen


Zurück
Oben