2016-04-07 2 views
-7

Il s'agit donc de la méthode percentEven du manuel Java. Je ne peux pas le compiler et je me demandais si vous pouviez voir mon erreur. "Ecrivez une méthode appelée" percentEven "qui accepte un tableau d'entiers en tant que paramètre et renvoie le pourcentage de nombres pairs dans le tableau sous la forme d'un nombre réel."percentEven, ne compilera pas

c'est les instructions. c'est ce que j'ai jusqu'ici.

import java.util.*; 

public class percentEven { 

    public class void main (String [] args) { 
     int [] integers = {34, 56, 4, 17, 9, 83, -300, 5}; 
     int evenResult = percentEven (integers); 
     System.out.println (" The percent of even numbers is" +   evenResult + "."); 
    } 

    public class int percentEven (int [] integers) { 
     int count = 0; 
     int even = 0; 
     for (i=0,i<integers.length,i++){ 
     if (integers[i] % 2 == 0){ 
      even++; 
     } 
     count++; 
     } 
     count= (even/count)*100; 
     return count; 
    } 
} 
+0

Ignorez aussi certains des espaces étranges, en postant une question ici. – Rallyman2150

+1

Comment avez-vous essayé de le compiler? Quel était le message d'erreur? – Burkhard

+2

Le modificateur 'class' ne doit être utilisé que pour introduire une classe, pas une méthode. Supprimez le modificateur 'class' des lignes' 5' et '11' pour commencer. Aussi, vérifiez vos boucles. – Zulfe

Répondre

2

Vous déclarez que votre méthode est incorrecte.

public class 

indique une nouvelle classe. Ce que vous voulez écrire est

public static int percentEven 

Votre boucle doit également être délimitée par; non, les caractères.

2

Tout d'abord, le changement

public class int percentEven (int [] integers) { 

à

public int percentEven (int [] integers) { 

percentEven est une méthode, pas une classe.

Deuxièmement, le changement

for (i=0,i<integers.length,i++){ 

à

for (int i = 0;i < integers.length; i++){ 

utilisant IDE pour le développement Java serait une bonne idée :)

0

Plusieurs erreurs dans le code:

  1. percentEven est un method pas une classe, retirez cette classe de mot-clé

  2. vous ne pouvez pas faire une référence statique à la méthode non-statique, la méthode doit être statique

  3. la i variable dans la boucle doit être a déclaré et le contenu est avec deux points-virgule pas

code final:

public static void main(String[] args) { 
    int[] integers = { 
     34, 56, 4, 17, 9, 83, -300, 5 
    }; 
    int evenResult = percentEven(integers); 
    System.out.println(" The percent of even numbers is" + evenResult + "."); 
} 

public static int percentEven(int[] integers) { 
    int count = 0; 
    int even = 0; 
    for (int i = 0; i < integers.length; i++) { 
     if (integers[i] % 2 == 0) { 
      even++; 
     } 
     count++; 
    } 
    count = (even/count) * 100; 
    return count; 
} 
1

Vous avez eu un tas d'endroits où vous avez écrit class dans une fonction. Votre main doit être static. Comme il appelle une autre fonction percentEven, cette fonction doit également être static. J'éviterai d'entrer dans d'autres détails techniques ici.

Les boucles For avaient , où vous aviez besoin ;.

Une erreur s'est produite dans la partie où vous effectuiez un calcul de pourcentage. int/int donne un int; donc, 4/8 = 0.Le multiplier par 100 rend aussi peu que pas de différence. Vous obtenez 0, quand vous devriez obtenir 50. Je l'ai changé en double afin que vous puissiez comprendre l'arithmétique. C'est le code de travail maintenant.

Le code suivant est celui qui fonctionne.

public class PercentEven { 

    public static void main(String[] args) { 
     int[] integers = new int[]{34, 56, 4, 17, 9, 83, -300, 5}; 
     double evenResult = percentEven(integers); 
     System.out.println("The percent of even numbers is " + evenResult + "."); 
    } 

    public static double percentEven(int[] integers) { 
     int count = 0; 
     int even = 0; 
     for (int i = 0 ; i < integers.length ; i++){ 
     if (integers[i] % 2 == 0){ 
      even++; 
     } 
     count++; 
     } 
     return (100.0*even/count); 
    } 
}