Somme suite en java

Résolu
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 

2 réponses

  1. Modérateur
    À 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
    1. 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
      1. Modérateur
        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