Need Help

fredspv Messages postés 127 Date d'inscription dimanche 7 mars 2004 Statut Membre Dernière intervention 6 juin 2008 - 5 avril 2004 à 09:19
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 5 avril 2004 à 11:16
Bonjour

J'ai fait une ptite CLASS mais la compile ne marche pas; voici le code:

import java.lang.*;

public class Bag {



static int[] a;

static int n;



Bag(int[] input) {

n = input.length;

a = new int[n];

System.arraycopy(input, 0, a, 0, n);

}

static int extractMin(){

int m = Integer.MAX_VALUE;

int mindex = 0;

for (int i = 1; i <= n; i++) {

if (a[i] < m) {

mindex = i;

m = a[i];

}

}

n--;

a[mindex] = a[n];

return m;

}







public static void main(String[] args) {

int test[] = {6,9,3,5};

Bag CallBag = new Bag(test);

int k = extractMin();

System.out.println("test" + k);

}

}

Que faire?

Merci

4 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
5 avril 2004 à 10:02
:big) Neodante :big)

Quand tu soumets une erreur de compilation essaye de mettre le message d'erreur en général ça aide beaucoup !
A mon extractMin() est la source de ton erreur : fais Bag.extractMin() pour que cela marche !
En fait la méthode main n'est pas considéré comme faisant partie de l'objet Bag, c'est comme si elle se situait en dehors, c'est la seule exception de ce genre en Java je te rassure !
Peut-être existe-il d'autres erreurs ... j'ai pas regardé à fond !
@+

[Responsable www.neogamedev.com]
0
fredspv Messages postés 127 Date d'inscription dimanche 7 mars 2004 Statut Membre Dernière intervention 6 juin 2008
5 avril 2004 à 10:42
Voici l'erreur:

java.lang.ArrayIndexOutOfBoundsException: 4

at projet_test.Bag.extractMin(Bag.java:19)

at projet_test.Bag.(Bag.java:13)

at projet_test.programme.main(programme.java:6)

Exception in thread "main"

Merci
0
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
5 avril 2004 à 11:06
kaloway

le problème doit venir de la boucle for car souvent lorsque j'ai un dépassement de la capacité du tableau, c'est que je me suis trompé dans les indices.
essais for(int i=0; i<n;i++).
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
5 avril 2004 à 11:16
:big) Neodante :big)

Ce n'est donc pas une erreur de compilation mais d'exécution ! Quand tu parcours un tableau mets 'i < tableau.length' pour ne pas dépasser l'indice max ...
Ca devarit arranger ton affaire !
@+

[Responsable www.neogamedev.com]
0
Rejoignez-nous