Somme suite en java

Résolu
tmedtcom Messages postés 60 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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 19031 Statut Modérateur 3 020
 
À 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 60 Statut Membre 13
 
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 19031 Statut Modérateur 3 020
 
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