Afficher 2 plus grandes notes d'une class

Bonjour,
quelqu'un peut m'aider pour faire ce prg
utilistateur doit rentrer notes obtenues par les étudiants à un examen;et l'utilisateur indique la fin de la saisie en tapant(-1);à la fin de saisie le prg affiche les deux meilleurs notes de la classe
s'il vous plaît
Configuration: Windows XP Internet Explorer 6.0

23 réponses

  • Votes
  • Date
  • Date décroissante
  1. il n'y a personne pour m'aider
    1. Bonjour domxaline,

      Faute de connaître le langage que vous utilisez, voici la syntaxe SQL appropriée pour répondre à votre question :

      SELECT TOP 2 <Liste des Élèves>.<Note>
      FROM <Table>
      ORDER BY <Liste des Élèves>.<Note> DESC;
  2. Contributeur
    Personne peut t'aider? précise peut-être avec quel langage et quel logiciel....
    --
    1. j'ecris jusqu' à la ligne
      while while(notes !='-1');
      '-1' est souligné en rouge ,et message dit "invalid character constant"

      import java.util.Scanner;
      public class Toi1
      {
      public static void main(String []args)
      {
      Scanner sc=new Scanner(System.in);
      double[] notes=new double[10];
      for(int i=0; i<notes.length; i++)
      {
      System.out.println("entrez une nouvell note:");
      notes.length=sc.nextInt();
      }
      while(notes !='-1');
      }
      }
      1. j'ecris ainsi
        le problem while et trouver deuxième note maxi reste toujours

        import java.util.Scanner;
        public class Toi1
        {
        public static void main(String []args)
        {
        double[] notes=new double[5];
        System.out.println("entrez une nouvell note:");
        Scanner sc=new Scanner(System.in);
        for(int i=0; i<notes.length; i++)
        {
        notes[i]=sc.nextDouble();
        }
        while (notes[i]!=-1);
        double max=notes[0];
        for(int i=1;i<notes.length;i++)
        {
        if (notes[i]>max)
        {
        max=notes[i];
        }
        }
        System.out.println("notes plus grand"+max);
        }
        }
        1. Contributeur
          Corrige le titre de ton message en précisant JAVA
          (désolé, je ne connais pas java)
          1. exemple d d'utilisation
            entrez une nouvell note:
            3
            8
            2,9
            15
            1
            -1
            notes plus grand15.0
            notes plus grand8.0

            package com.test;

            import java.util.ArrayList;
            import java.util.Iterator;
            import java.util.List;
            import java.util.Scanner;

            public class test1 {

            public static void main(String[] args) {
            float note ;
            List<Float> notes = new ArrayList<Float>() ;

            System.out.println("entrez une nouvell note:");
            Scanner sc = new Scanner(System.in);

            do{
            note=sc.nextFloat();
            notes.add(note);
            }while (note!= -1);

            float max1=0;
            float max2=0;

            Iterator <Float> it = notes.iterator();
            while (it.hasNext()) {
            note= (float) it.next();
            if (note > max1){
            max2=max1;
            max1=note;
            }
            };

            System.out.println("notes plus grand" + max1);
            System.out.println("notes plus grand" + max2);
            }
            }
            1. lol la c'est pour autant de note que tu veux terminer par un -1
              sinon tu fais avec un tableaux limiter a 5
              tu te passe de t'on histoir de -1 qui ne sert a rien du tous
              et hop
              1. pour info le fichier est la dessous
                http://gadille.free.fr/doc/java/perso/src/com/test/
                1. Salut,

                  import java.util.Scanner;
                     import java.util.Arrays;
                   
                      public class Toi1 
                     { 
                         public static void main(String []args) 
                        {
                           double[] notes=new double[5]; 
                           Scanner sc=new Scanner(System.in);
                           
                           for(int i=0; i<notes.length; i++)
                           {
                              System.out.print("entrez une note: ");
                              double note = sc.nextDouble();
                              //System.out.println("La note = " + note);
                              if (note == -1.0)
                                 break;
                              else 
                                 notes[i] = note;
                           }
                           
                           Arrays.sort(notes); // tri du tableau
                           System.out.println("");
                           for (int i = 0; i <notes.length; i++)
                           {
                              System.out.println(notes[i]);
                           }
                           
                           System.out.println("\nLes 2 notes les plus grandes sont:\n"
                              + notes[notes.length -2] + " et\n"
                              + notes[notes.length -1]);
                        } 
                     }


                  Cordialement,

                  Dan
                  1. Re,

                    J'ai conservé ton idée initiale (sauf pour la recherche des 2 meilleures notes, je trie le tableau notes[], ainsi les 2 notes les plus grandes sont les 2 dernières du tableau).
                    Bien entendu, notes=new double[5]; devrait être remplacé par notes=new double[leNombreDeCopies]; et il est toujours possible de sortir avant la fin de saisie en entrant -1.

                    Dan
                    1. admettons si je veux saisir plus de 5 notes(indefinit),et après saissant -1 , mon saissi doit terminer
                      1. "Admettons si je veux saisir plus de 5 notes(indefinit),et après saissant -1 , mon saissi doit terminer"

                        Oui:

                        if (note == -1.0) // (peut-être if (note == -1,0) chez toi) le fait
                                       break;


                        Il serait bien aussi de remplacer:

                        for(int i=0; i<notes.length; i++)
                                 {
                                    System.out.print("entrez une note: ")

                        par:

                        for(int i=0; i<notes.length; i++)
                                 {
                                    System.out.print("entrez une note (ou -1 pour sortir): ")


                        Cordialement,

                        Dan
                        • 1
                        • 2