Boucle

KINGJI -  
 Utilisateur anonyme -
Bonjour,
Je vous en prie aidez moi, c'est tres urgent.
je ne parvient pas a calculer la moyenne des nombres pairs

public class MoyNbrePairs{
public static void main (String args [])
{
int i, n, comp ;
double x, somPair, moy;
do
{
System.out.println ("Entrez n:");
n= Clavier.lireInt();
}
while (n<=0);
somPair=0;
moy=0;
for (i=1; i<=n; i++)
{
System.out.println ("Entrez le nombre #:"+i);
x= Clavier.lireDouble();
if((x%2)==0)
somPair+=x;
}
moy=somPair/n; // ici, je sais pas comment n nombre pairs des nombres impairs
System.out.println ("La moyenne des nombres pairs est:"+moy);

}
}

Merci a vous tous

4 réponses

joe
 
public class MoyNbrePairs{
public static void main (String args [])
{
int i, n, comp, nbNombresPairs ;
double x, somPair, moy;
do
{
System.out.println ("Entrez n:");
n= Clavier.lireInt();
}
while (n<=0);
somPair=0;
moy=0;
for (i=1; i<=n; i++)
{
System.out.println ("Entrez le nombre #:"+i);
x= Clavier.lireDouble();
if((x%2)==0)
{
somPair+=x;
nbNombresPairs++;
}
}
moy=somPair/nbNombresPairs; // ici, je sais pas comment n nombre pairs des nombres impairs
System.out.println ("La moyenne des nombres pairs est:"+moy);
}
}
0
KINGJI Messages postés 13 Statut Membre
 
Merci mon cher ami, mais malheureusement ca n'a pas marcher
0
Joe
 
Qu'est-ce qui ne marche pas ?
0
KINGJI Messages postés 13 Statut Membre
 
mon probleme c'est que , je sais pas comment retirer n nombre pairs dans n pour pouvoir calculer la moyenne des nombres pairs
moy=somPair/nbNombresPairs;

mille merci
0
Utilisateur anonyme
 
Salut,

ATTENTION les concepts pair/impair ne s'appliquent qu'aux entiers.

Rappels:

-La somme de n nombres pairs est un nombre pair;

-La moyenne des nombres pairs cumulés sera le quotient de somme/n;

-Sachant que la somme est paire; si n est impair le quotient sera pair; si n est pair le quotient sera pair ou impair.

Ton code devient:
import java.util.Scanner;
   
   public class MoyNbrePairs{ 
      public static void main (String args []) 
      { 
         int i, n, comp, nbNombresPairs = 0 ; 
         //double x, somPair, moy; 
         int x, somPair, moy;
        Scanner clavier = new Scanner(System.in);
         do 
         { 
            System.out.print ("Entrez n: "); 
            n= clavier.nextInt(); // attention n ne sera pas forcément le nombre de pairs
         } 
         while (n<=0); 
         somPair=0; 
         moy=0; 
         for (i=1; i<=n; i++) 
         { 
            System.out.print ("Entrez le nombre # " + i + ": "); 
            //x= clavier.lireDouble();  
            x= clavier.nextInt();
            if((x%2)==0) 
            { 
               somPair+=x; 
               nbNombresPairs++; 
            } 
         }
         if(nbNombresPairs > 0)
         { 
            moy=somPair/nbNombresPairs; // ici, je sais pas comment n nombre pairs des nombres impairs 
            System.out.println ("La moyenne des nombres pairs est: "+moy);
         }
         else 
            System.out.println ("IL n'y a aucun nombre pair !!!...");
      } 
   }



Cordialement,

Dan

0
KINGJI Messages postés 13 Statut Membre
 
Merci a vous mon ami, votre reponse n'a pas marcher, heureusement j'ai trouver un moyen de sortir, voici le resultat:

public class MoyNbrePairs{
public static void main (String args [])
{
int i, n, comp=0;
double x, somPair, moy;
do
{
System.out.println ("Entrez n:");
n= Clavier.lireInt();
}
while (n<=0);
somPair=0;
for (i=1; i<=n; i++)
{
System.out.println ("Entrez le nombre #:"+i);
x= Clavier.lireDouble();
if((x%2)==0)
{
somPair+=x;
comp=comp+1;
}
}
moy=somPair/comp;
System.out.println ("La moyenne des nombres pairs est:"+moy);
}
}



Merci a vous tous pour votre support
0
Utilisateur anonyme
 
Ce code ne peut fonctionner dans tous les cas car on ne doit traiter que de valeurs entières mais pas de doubles comme c'est le cas...
Ne saisir que la partie entier est un cas particulier.

Le modulo % lui aussi ne s'applique que sur des divisions entières.
0
Utilisateur anonyme
 
Re,

Concernant
"est ce que vous pouvez me donnez un idee sur ce probleme?
Ecrire en java un programme permettant de lire n nombres et qui calcule:
a) Le plus grand element de ces nombres
b) Le plus petit element de ces nombres
c) La difference entre le plus grand et le plus petit."

Un moyen simple est de mettre les valeurs saisies dans un tableau puis de trier ce tableau:

TRI:


Arrays.sort(leTableau); //Tri du tableau en ordre croissant
                                // import java.util.Arrays;



Après le tri:

-le nombre le plus grand est le dernier élément du tableau;

-le nombre le plus petit est l'élément 0

_la difference entre le plus grand et le plus petit est ... plus grand - plus petit !!!

Cordialement,

Dan
0
KINGJI Messages postés 13 Statut Membre
 
j'ai essayé malheureusement ca n'a pas marcher, saches que je suis un debutant pour maintenant je suis ne pas encore elaborer la notion de tableau.
merci beaucoup pour votre support, pouvez vous m'envoyez le code java pour mieux comprendre?

mes remerciments anticipés
0
Utilisateur anonyme
 
Ok mais je ne pense pas que cela te sera utile...

Mais je te prépare quelque chose, et peut-être que ca en interressera d'autres.
0
Utilisateur anonyme
 
Re,

Comme promis voici un exemple permettant d'obtenir la valeur la plus grande ou la plus petite d'une série d'entiers (ce pourait être une série de réels):

import java.util.Scanner; // pour la saisie
   import java.util.Arrays; // pour le tri
   
   public class PlusPetitPlugrand
   { 
      public static void main (String args []) 
      {
      // nous saisirons toutes les valeurs dans un String en les séparant par un ou plusieurs espaces.
      // pour cela nous utiliserons la classe Scanner.
      
      
         Scanner clavier = new Scanner(System.in);
      
         String valSaisies = "";
         System.out.println("Entrez les valeurs en les séparant par un ou plusieurs espaces\n"
            + "par exemple 12 4 6    25 1 5 -44   7 1 18: "); 
         valSaisies = clavier.nextLine();
         String[] tableau = valSaisies.split(" +"); // séparateur: au moins 1 espace	
         System.out.println("\nAvant tri:");
         for(int i = 0; i < tableau.length; i++)
            System.out.println(tableau[i]);
       
         int[] tabEntiers = new int[tableau.length];
       
         for(int i = 0; i < tabEntiers.length; i++)
            tabEntiers[i] = Integer.parseInt(tableau[i]);    
      		
      	
         Arrays.sort(tabEntiers);	
         System.out.println("\nAprès tri:");
         for(int i = 0; i < tabEntiers.length; i++)
            System.out.println(tabEntiers[i]);
            
         int valPg = tabEntiers[tabEntiers.length -1];  
         int valPp = tabEntiers[0];
         int difPgPp = valPg - valPp;
            
         System.out.println("La valeur la plus grande est: " + valPg + "\n");	
         System.out.println("La valeur la plus petite est: " + valPp + "\n");
         System.out.println("La différence entre la valeur la plus grande et la plus petite est: " + difPgPp);
      }
   }


Dan
0