Programme facile qui ne fonctionne pas

Résolu
rdp80 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
rdp80 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour Mesdames, bonjour Messieurs,

je suis actuellement en étude de programmation dans une école et j'ai quelques problèmes concernant mon code java.

Je dois créer un programme qui lit le les sommes que nous rentrons au clavier de l'ordinateur et qui doit me sortir la somme moyenne reçue , la somme minimale reçue et la somme maximale reçue.

J'ai tapé quelques lignes mais je ne comprends pas ou est mon erreur, pourriez-vous m'aider?

package openClassRooms;

import java.util.*;
public class Exercice07 
{

 public static void main(String[] args) 
 {

  Scanner keyb=new Scanner(System.in);

  int nombreDeSommesRecues=0;
  double sommesMoyennesRecues=0;
  double sommesMinimalesRecues=0;
  double sommesMaximalesRecues=0;




  System.out.println("Bonjour veuiller indiquer le nombre de sommes recues: ");
  nombreDeSommesRecues=keyb.nextInt();

  double [] tab = new double[nombreDeSommesRecues-1];

  for (int i=0;i<nombreDeSommesRecues;++i)
  {

   System.out.println("Veuillez rentrer la reçue la "+(i+1)+" fois");
   tab[i]= keyb.nextDouble();

  }

  for (int j=0;j<nombreDeSommesRecues;++j)
  {

   sommesMoyennesRecues=sommesMoyennesRecues+tab[j];

  }
  System.out.println("La somme moyenne reçue est de : "+sommesMoyennesRecues);
  
  sommesMinimalesRecues=tab[0];

  for (int k=0;k<nombreDeSommesRecues;++k)
  {

   if (sommesMinimalesRecues>tab[k])
   {
    sommesMinimalesRecues=tab[k];
   }
   

  }
  System.out.println("La plus petite somme reçue est de : "+sommesMinimalesRecues);
  
  
  sommesMaximalesRecues=tab[0];
  
  for (int l=0;l<nombreDeSommesRecues;++l)
  {
   if (sommesMaximalesRecues<tab[l])
   {
    sommesMaximalesRecues=tab[l];
   }
  }
  
  System.out.println("La somme maximale reçue est de : "+sommesMaximalesRecues);
  System.out.println("Fin du programme");
 }
 
}




Merci beaucoup

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Tu as mal initialisé ton tableau :
double [] tab = new double[nombreDeSommesRecues-1];

Pourquoi avoir mis
-1
?
0
rdp80 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour KX,

j'ai mis un "-1" car il me semble que dans un tableau le nombre de case commence à 0.

En effet, prenons l'exemple que je reçoive 4 sommes, si je laisse:

double [] tab = new double[4];

il va me créer 5 cases: la case numéro 0, la case numéro 1,...,la case numéro 4 ce qui me ferait 5 cases dans mon tableau ce qui serait inutile puisque j'en ai besoin que de 4.

C'est pour cela que j'ai mis le -1 pour que le nombre de cases correspondent aux nombres de sommes que je vais recevoir.

Est-ce que j'ai été clair dans ce que j'ai dit?
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Oui ça commence à 0, mais le nombre que tu mets dans new double[4] indique le nombre de case à créer. Cela en crée 4 (tab[0], tab[1], tab[2], tab[3]).
Donc pas de -1.
0
rdp80 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci énormément pour votre aide, ca fonctionne maintenant :-)
0