Afficher sous tableau de plus grande taille

pcforever01 Messages postés 59 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

j'essaie de créer un algo qui permet de d'afficher le numéro du plus grand sous tableau;
pour le moment je sais juste afficher la taille des tableaux mais comment comparer leurs tailles ...

class Tabup
{

public static void main(String[] args)
{
int[][] tab = {{1, 2, 3, 4, 5, 6, 7, 8}, {1, 2, 3, 4}, {1, 2, 3 ,4, 5, 6, 7, 8,9}};
int k = 0;

for (int i = 0; i < tab.length; i++)
{
for (int j = 0; j < tab[i].length; j++)
{ k = tab[i].length;
i++;

System.out.println(k);

}
}

}
}
A voir également:

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
C'est un problème classique de recherche de maximum dans un tableau.
Par contre tu es très mal parti, car ton affichage de la taille des sous-tableaux va te renvoyer un ArrayIndexOutOfBoundsException. Cela vient de ta double boucle for, et en particulier du i++ qui se promène en plein milieu du code.
Normalement il ne faudrait qu'une seule boucle pour afficher la taille des sous-tableaux :

for (int i=0; i<tab.length; i++)
{
	int k = tab[i].length;
	System.out.println(k);
}

Maintenant pour récupérer le maximum, il te suffit de prendre une variable imax qui sera ton résultat, c'est àdire l'indice du tableau qui a la plus grande taille (tab[imax] est maximal).
À chaque tour de boucle il faudra que tu compares tab[k] avec tab[imax] (qui est le maximum des k premiers tableaux) pour éventuellement faire imax=k.
0