Somme suite en java

Résolu/Fermé
tmedtcom Messages postés 48 Date d'inscription dimanche 24 mai 2009 Statut Membre Dernière intervention 14 février 2013 - 19 nov. 2011 à 12:33
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 19 nov. 2011 à 14:30
Bonjour,

ennocé:
écrivez en Java le programme qui calcule et affiche la moyenne d'une suite de nombres décimaux positifs ou nuls, dont la fin est indiquée par un nombre négatif. Exemple d'exécution (ce qui a été tapé par l'utilisateur est en gras et souligné) :
Donner les nombres (terminer par -1): 14 8,5
10
12 5,5 -1
moyenne: 10,0

Mon script est :
package testproject;

import java.util.Scanner;
public class scaner {
    public static void main (String args[]){
        Scanner entree = new Scanner(System.in);
        
        int c=0,i=0,somme=0;
        String s="z";
        
        
        while (i>=0){
        
        if (c % 2==0 ) {i = entree.nextInt();} else {s = entree.nextLine();}
            
        System.out.println("iiiii "+i);
        
        System.out.println("sssss "+s);
        c= c +1;
        somme=somme+i;
        }     
    }
}
}

mais 

A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 nov. 2011 à 14:02
À quoi te sert ton c ? En faisant comme ça tu vas compter deux fois chaque i...
Tu peux directement faire :

while (i>=0)
{
    i = entree.nextInt();
    s = entree.nextLine();
    System.out.println("i="+i);	   
    System.out.println("s="+s);	        
    somme=somme+i;
}
1
tmedtcom Messages postés 48 Date d'inscription dimanche 24 mai 2009 Statut Membre Dernière intervention 14 février 2013 13
19 nov. 2011 à 14:10
c'est fait voila la solution:
package testproject;
import java.util.Scanner;
public class scaner {
    public static void main (String args[]){
        Scanner entree = new Scanner(System.in);
        float i=0,somme=0;
        int c=-1;          
        while (i>=0){
        i = entree.nextFloat();    
        c= c +1;
        if (i>=0){somme=somme+i;}
        }  
        System.out.println("La somme est "+somme);
        if (somme!=0){float moy=somme/c;        System.out.println("la Moyenne est "+moy);}
        else {System.out.println("La Moyenne est zéro");}
    }
}
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 nov. 2011 à 14:30
Dans ce code tu ne prends pas en compte le cas où plusieurs valeurs sont données sur la même ligne comme tu l'avais montré en exemple:

14 8,5
10
12 5,5 -1
0