Somme suite en java

Résolu
tmedtcom Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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 48 Date d'inscription   Statut Membre Dernière intervention   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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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