Petit exercice java

Fermé
nds - 1 juil. 2010 à 18:21
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 - 3 juil. 2010 à 09:54
Bonjour,



je un petit exercice java et il m'a demandé d'afficher le personne le moin agé .voici ma réponce mais il marche plus et merci de votre aide si c'est possible :



public class conte {
private String nom;
private String prenom;
private int eta;

public conte(String n,String p,int e)
{
this.nom=n;
this.prenom=p;
this.eta=e;

}

public static void println(conte[] b)
{


for(int i=0;i<b.length;i++)
{

System.out.println("le tableau est "+b[i]);}}
public static int f(conte[]a)
{
int min=a[0].eta;
for(int i=1;i<a.length;i++)
{
if(a[i].eta<min)
{min=a[0].eta;
}

}
return min;




}


public static void main(String[]args)
{
conte []n=new conte[4];
n[0]=new conte("jj","hhh",4);
n[1]=new conte("jj","hhh",7) ;
n[2]=new conte("jj","hhh",3);
n[3]=new conte("jj","hhh",8) ;

conte []b=new conte[2];


System.out.println(conte.f(b));
}


}
A voir également:

5 réponses

Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
1 juil. 2010 à 18:25
Hello,

Il me semble qu'il y a une erreur dans ta fonction public static void println(conte[] b)


A la fin,

if(a[i].eta<min)
{min=a[0].eta;
}

c'est plutôt min = a[i].eta
0
non plus tt jours il m'iffiche cette erreur :
Exception in thread "main" java.lang.NullPointerException
at conte.f(conte.java:25)
at conte.main(conte.java:52)
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
1 juil. 2010 à 18:36
ah je crois que ça y est, à la fin tu as fait :
conte []n=new conte[4];
n[0]=new conte("jj","hhh",4);
n[1]=new conte("jj","hhh",7) ;
n[2]=new conte("jj","hhh",3);
n[3]=new conte("jj","hhh",8) ;

conte []b=new conte[2];


System.out.println(conte.f(b));


mais le b n'est pas rempli !

Essaye plutôt System.out.println(conte.f(n));
0
Merci bien elle marche et ji je veux afficher le nom de deux personnes le moin agé qu'est ce que je doit ajouter .Merci d'avance
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
1 juil. 2010 à 18:51
Tu veux qu'elle affiche le nom et plus le min c'est ça ? Si oui il faut réécrire la fonction println en mettant sauvegardant le i pour lequel l'âge est le plus petit, et mettre un return a[i].nom
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
1 juil. 2010 à 18:56
sinon tu peux faire :

public class conte {
private String nom;
private String prenom;
private int eta;

public conte(String n,String p,int e)
{
this.nom=n;
this.prenom=p;
this.eta=e;

}


public static int minAge(conte[]a){
    int min=a[0].eta;
    int j = 0 ;
for(int i=1;i<a.length;i++)
{
if(a[i].eta<min)
{min=a[i].eta;
 j=i ;
}

}
return j;

}





public static void main(String[]args)
{
conte []n=new conte[4];
n[0]=new conte("jj","hhh",4);
n[1]=new conte("jj","hhh",7) ;
n[2]=new conte("jj","hhh",3);
n[3]=new conte("jj","hhh",8) ;

conte []b=new conte[2];

int indice = conte.minAge(n);
System.out.println(n[indice].eta);

System.out.println(n[indice].nom);

}




}
0
sa elle me donne un seule personne mais je veus qu'il me retourne 2 personnes moin agé
0
autrement si je veux mettre le résulta dans autre tableau
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
1 juil. 2010 à 19:27
public class conte {
private String nom;
private String prenom;
private int eta;

public conte(String n,String p,int e)
{
this.nom=n;
this.prenom=p;
this.eta=e;

}


public static int minAge(conte[]a){
    int min=a[0].eta;
    int j = 0 ;
for(int i=1;i<a.length;i++)
{
if(a[i].eta<min)
{min=a[i].eta;
 j=i ;
}

}
return j;

}





public static void main(String[]args)
{
conte []n=new conte[4];
n[0]=new conte("jj1","hhh",4);
n[1]=new conte("jj2","hhh",7) ;
n[2]=new conte("jj3","hhh",3);
n[3]=new conte("jj4","hhh",8) ;

conte []b=new conte[2];

int indice = conte.minAge(n);
System.out.println(n[indice].eta);

int min=n[0].eta;
int min1=n[0].eta;
int j = 0, l= 0 ;
for(int i=1;i<n.length;i++)
{
if(n[i].eta<min)
{min=n[i].eta;
 j=i ;
}
    }
for (int k= 1 ; k<n.length;k++){
    if (k!=j && n[k].eta<min1){
        min1 = n[k].eta;
        l=k;

    }
    }


System.out.println(n[j].nom);
System.out.println(n[l].nom);


    }
}
0
trés bien merci mais si le méthose et Agemin est déclarer comme sa ;


"public static conte[] minAge(conte[]a)"

au lieu de :

public static int minAge(contee[]a){
int min=a[0].eta;
int j = 0 ;
for(int i=1;i<a.length;i++)
{
if(a[i].eta<min)
{min=a[i].eta;
j=i ;
}

}
return j;

}
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
2 juil. 2010 à 14:01
Comme ça :


public class conte {
private String nom;
private String prenom;
private int eta;

public conte(String n,String p,int e)
{
this.nom=n;
this.prenom=p;
this.eta=e;

}


public static String[] minAge(conte[]n){
 String tab[] ;
 tab = new String [2];
int min=n[0].eta;
int min1=n[0].eta;
int j = 0, l= 0 ;
for(int i=1;i<n.length;i++)
{
if(n[i].eta<min)
{min=n[i].eta;
 j=i ;
}
    }
for (int k= 1 ; k<n.length;k++){
    if (k!=j && n[k].eta<min1){
        min1 = n[k].eta;
        l=k;

    }
    }

tab[0] = n[j].nom ;
tab[1] = n[l].nom ;


return tab ;


}





public static void main(String[]args)
{
conte []n=new conte[4];
n[0]=new conte("jj1","hhh",4);
n[1]=new conte("jj2","hhh",7) ;
n[2]=new conte("jj3","hhh",3);
n[3]=new conte("jj4","hhh",8) ;

String []b=new String[2];

b = minAge(n);

System.out.println(b[0]);
System.out.println(b[1]);

}
}
0

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

Posez votre question
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
2 juil. 2010 à 18:31
Mon java est peut-être en peu rouillé mais :
On n'écris pas plutôt
Objet[] tableau 

au lieu de
Objet []tableau 
pour un tableau d'objets ?
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
2 juil. 2010 à 18:46
tu veux dire l'espace après les crochets au lieu de avant ? Je pense que les 2 doivent fonctionner mais à vérifier
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
3 juil. 2010 à 09:54
Non il est très très tolérant :-)

Tu peux mettre 100 espace avant les [], c'est pas ça qui le dérange.
0