A voir également:
- Classer nombre ordre croissance java
- Waptrick java football - Télécharger - Jeux vidéo
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Java apk - Télécharger - Langages
- Classer les applications par ordre alphabétique iphone - Guide
- Jeux java itel football - Télécharger - Jeux vidéo
2 réponses
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
28 févr. 2013 à 01:14
28 févr. 2013 à 01:14
if (nombre<mylist[nombre])
Tu es sûr que ton tableau comporte jusqu'à 10000 éléments?
Il faut donc écrire :
if (nombre<mylist[i])
Par ailleurs, tu effectues le tri directement en tirant les entiers.
Il est préférable de tirer 10 entiers auparavant avec une boucle FOR. Puis ensuite de faire le tri avec une autre boucle FOR
Tu es sûr que ton tableau comporte jusqu'à 10000 éléments?
Il faut donc écrire :
if (nombre<mylist[i])
Par ailleurs, tu effectues le tri directement en tirant les entiers.
Il est préférable de tirer 10 entiers auparavant avec une boucle FOR. Puis ensuite de faire le tri avec une autre boucle FOR
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
28 févr. 2013 à 20:01
28 févr. 2013 à 20:01
C'est normal.
Même en mettant cela ça ne fonctionne pas car le programme est mal pensé :-)
for (i=0; i<=nombre; i++)
Ici imaginons que le nombre en question est 3245, la taille de MyList elle n'est que de 10.
Donc si on met MyList[i] cela va chercher en partant de 0 chaque élément, sauf qu'arrivé à 10, cela ne marche plus car on a dépassé la taille du tableau et on essaie alors de lire un élément inexistant.
Commencez déjà par faire une boucle de génération des entiers avant de vouloir les trier.
Même en mettant cela ça ne fonctionne pas car le programme est mal pensé :-)
for (i=0; i<=nombre; i++)
Ici imaginons que le nombre en question est 3245, la taille de MyList elle n'est que de 10.
Donc si on met MyList[i] cela va chercher en partant de 0 chaque élément, sauf qu'arrivé à 10, cela ne marche plus car on a dépassé la taille du tableau et on essaie alors de lire un élément inexistant.
Commencez déjà par faire une boucle de génération des entiers avant de vouloir les trier.
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
28 févr. 2013 à 20:27
28 févr. 2013 à 20:27
Oui sauf que vous utilisez la valeur de nombre pour lire un élément du tableau,c'est ça l'erreur.
Si nombre=3245, du coup cette instruction :
for (i=0; i<=nombre; i++)
Devient :
for (i=0; i<=3245; i++)
et donc par prolongation :
if (nombre<mylist[nombre])
Devient à la fin
if (nombre<mylist[3245])
Comme MyList ne contient que 10 valeurs, il est impossible de chercher la valeur contenue à la place 3245 voire même celle à l'emplacement 10 parce que celle-ci n'existe pas.
Si nombre=3245, du coup cette instruction :
for (i=0; i<=nombre; i++)
Devient :
for (i=0; i<=3245; i++)
et donc par prolongation :
if (nombre<mylist[nombre])
Devient à la fin
if (nombre<mylist[3245])
Comme MyList ne contient que 10 valeurs, il est impossible de chercher la valeur contenue à la place 3245 voire même celle à l'emplacement 10 parce que celle-ci n'existe pas.
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
28 févr. 2013 à 20:33
28 févr. 2013 à 20:33
Toujours pas.
Si un tableau a une taille de 10, les emplacements possibles sont notés de 0 à 9
Donc i<10, pas <=
Si un tableau a une taille de 10, les emplacements possibles sont notés de 0 à 9
Donc i<10, pas <=
Voici mon nouveau code mais il m'indique toujours une erreur :mylist[nombre] = nombre + 1;
int nombre, i;
int [] mylist = new int [10];
int tirage;
tirage = 1;
while (tirage <=10)
{
nombre = (int)(Math.random()*10000)+1;
for (i=0; i<10; i++)
{
if (nombre<mylist[i])
{
mylist[nombre] = nombre + 1;
}
mylist[i] = nombre;
}
tirage = tirage + 1;
}
System.out.println("Voici les nombres dans l'ordre croissant :" + mylist[10] + "");
int nombre, i;
int [] mylist = new int [10];
int tirage;
tirage = 1;
while (tirage <=10)
{
nombre = (int)(Math.random()*10000)+1;
for (i=0; i<10; i++)
{
if (nombre<mylist[i])
{
mylist[nombre] = nombre + 1;
}
mylist[i] = nombre;
}
tirage = tirage + 1;
}
System.out.println("Voici les nombres dans l'ordre croissant :" + mylist[10] + "");
28 févr. 2013 à 11:25