Afficher 2 plus grandes notes d'une class

domxaline -  
 domxaline -
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

  • 1
  • 2
  1. domxaline
     
    il n'y a personne pour m'aider
    0
    1. Jean_Jacques Messages postés 1045 Date d'inscription   Statut Membre Dernière intervention   112
       
      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;
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Personne peut t'aider? précise peut-être avec quel langage et quel logiciel....
    --
    0
  3. domxaline
     
    excuse moi,j'utlise java
    merci d'avance
    0
  4. domxaline
     
    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');
    }
    }
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. domxaline
     
    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);
    }
    }
    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Corrige le titre de ton message en précisant JAVA
    (désolé, je ne connais pas java)
    0
  8. mel21lio Messages postés 304 Statut Membre 25
     
    tu veux rentré que 5 note ou autant de note que l'on te donne?
    0
  9. mel21lio Messages postés 304 Statut Membre 25
     
    pourquoi un double ?
    0
  10. mel21lio Messages postés 304 Statut Membre 25
     
    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);
    }
    }
    0
  11. mel21lio Messages postés 304 Statut Membre 25
     
    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
    0
  12. mel21lio Messages postés 304 Statut Membre 25
     
    pour info le fichier est la dessous
    http://gadille.free.fr/doc/java/perso/src/com/test/
    0
  13. danimo
     
    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
    0
  14. danimo
     
    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
    0
  15. domxaline
     
    admettons si je veux saisir plus de 5 notes(indefinit),et après saissant -1 , mon saissi doit terminer
    0
  16. danimo
     
    "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
    0
  • 1
  • 2