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
A voir également:

23 réponses

domxaline
 
il n'y a personne pour m'aider
0
Jean_Jacques Messages postés 1048 Statut Membre 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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Personne peut t'aider? précise peut-être avec quel langage et quel logiciel....
--
0
domxaline
 
excuse moi,j'utlise java
merci d'avance
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Corrige le titre de ton message en précisant JAVA
(désolé, je ne connais pas java)
0
domxaline
 
comment corrige le titre
0
mel21lio Messages postés 304 Statut Membre 25
 
tu veux rentré que 5 note ou autant de note que l'on te donne?
0
mel21lio Messages postés 304 Statut Membre 25
 
pourquoi un double ?
0
domxaline
 
si le notes est avec virgule
ex: 12.5
0
domxaline
 
je veux rentrer seulement 5 notes
0
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
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
domxaline
 
c'est ça merci beaucoup
0
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
Utilisateur anonyme
 
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
Utilisateur anonyme
 
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
domxaline
 
admettons si je veux saisir plus de 5 notes(indefinit),et après saissant -1 , mon saissi doit terminer
0
Utilisateur anonyme
 
"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
domxaline
 
merci beaucoup pour ton aide
0