tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
287
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    p4man p4man ist offline Mitglied
    Registriert seit
    Nov 2009
    Beiträge
    12
    hi leute, hab folgendes problem:

    Das Programm soll einfach alle primzahlen ausgebengeben bis zum eingegebenen wert.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    
    import java.util.Scanner;
     
    public class Blatt4Aufgabe {
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
     
            Scanner eingabe = new Scanner(System.in);
            System.out.print("Schranke eingeben : ");
            int schranke = eingabe.nextInt();
            int [] zahlen = befuellen(schranke);
            int [] zahlen2 = sieben(zahlen);
            ausgabe(zahlen2);
        
        }
        public static int[] befuellen(int schranke) {
        int [] befueller = new int[schranke];
        
        for (int i = 1; i < befueller.length; i++) {
            befueller[i]= i + 1;
        }
        return befueller;
        }
     
        public static int[] sieben(int [] zahlen) {
     
            for (int i = 1; i < zahlen.length; i++) {
                for (int j = 2; j < zahlen.length; j++) {
            if (zahlen[j] <=2 || zahlen[j] % zahlen[i]== 0) {
                zahlen[j] = 0;
            }   
            }
        }    
            return zahlen;
        }
     
        public static int [] ausgabe(int [] zahlen2) {
            
          for (int i = 1; i < zahlen2.length; i++) {
          if( zahlen2[i] != 0 ) {
          System.out.print(zahlen2[i]+ ", ");
        }
        }    
          return zahlen2;  
        }
    }

    Sobald ich eine zahl über 4 eingebem kommt ein fehler.

    1.Methde schreibet alle werte von 1- eingabe zahlen in ein array.
    2. Methode soll alle nicht primzahlen auf 0 setzen im array.
    3.Methode ausgabe aller werte des arrays != 0;

    bim am verzeifeln und komme nichtr auf den fehler..

    Eclipse sagt, methode 2 hat einen fehler.
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Und welchen Fehler?

    Bitte Netiquette §15 beachten.

    PS: Generell würden zwei Dinge gut tun:
    a) eine ordentliche Einrückung
    b) Schleifen bei 0 beginnen
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    p4man p4man ist offline Mitglied
    Registriert seit
    Nov 2009
    Beiträge
    12
    Schranke eingeben : 5
    Exception in thread "main" java.lang.ArithmeticException: / by zero
    at Blatt4Aufgabe.sieben(Blatt4Aufgabe.java:34)
    at Blatt4Aufgabe.main(Blatt4Aufgabe.java:12)


    wird von eclipse
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Du dividierst beim Modulo durch 0.
    Mach ein if, damit das nicht passiert.

    Und generell ist dein Code ziemlich wacklig...
    Verbesserung kommt...

    edit:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
    import java.util.Scanner;
     
    public class Blatt4Aufgabe {
     
        public static void main(String[] args) {
            Scanner eingabe = new Scanner(System.in);
            System.out.print("Schranke eingeben : ");
            ausgabe(sieben(befuellen(eingabe.nextInt())));
        }
     
        public static int[] befuellen(int schranke) {
            int [] befueller = new int[schranke + 1];
            for (int i = 0; i < befueller.length; i++)
                befueller[i]= i;
            return befueller;
        }
     
        public static int[] sieben(int[] zahlen) {
            for (int i = 0; i < zahlen.length; i++) {
                if (zahlen[i] != 0) {
                    for (int j = 2 * i; j < zahlen.length; j += i)
                        zahlen[i] = 0;
                }
            }    
            return zahlen;
        }
     
        public static int[] ausgabe(int[] zahlen) {
            for (int i = 0; i < zahlen.length; i++) {
                if( zahlen[i] != 0 )
                    System.out.print(zahlen2[i]+ ", ");
            }    
            return zahlen2;  
        }
    }
    Ungetestet.

    Gruß
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  5. #5
    p4man p4man ist offline Mitglied
    Registriert seit
    Nov 2009
    Beiträge
    12
    was meinst du mit wackelig?
    danke für die antwort
     

  6. #6
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Divisionen durch Null,
    Schleifen die nicht alles durchlaufen,
    Ausgabe falscher Zajlen (um eins verschoben)...

    Nochmal: Netiquette
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

Ähnliche Themen

  1. MySQL Fehler in Java
    Von slimeSkybird im Forum Java
    Antworten: 0
    Letzter Beitrag: 04.08.11, 19:29
  2. Fehler im Java Script
    Von MasterDP23 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 07.02.09, 11:53
  3. Antworten: 12
    Letzter Beitrag: 24.09.08, 13:16
  4. Dreamweaver MX 6.0 Java Fehler
    Von Nohh im Forum Java
    Antworten: 1
    Letzter Beitrag: 15.05.07, 09:46
  5. Java Script Fehler
    Von web32 im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 10.09.02, 15:26

Stichworte