Matrice en Java
Tropsy
-
Tropsy -
Tropsy -
Bonjour,
Je souhaite créer une fonction qui permet de nous dire si une matrice est diagonale. Voici ce que j'ai réussi à faire : Code Java :
Il y a une faute qui fait que ca ne fonctionne pas mais je ne vois pas laquelle. Pourriez vous m'aider ?
Merci.
Je souhaite créer une fonction qui permet de nous dire si une matrice est diagonale. Voici ce que j'ai réussi à faire : Code Java :
public static void main(String[] args) {
// TODO code application logic here
// Variables :
Scanner entrée = new Scanner(System.in);
int nbl1; // lignes de la matrice M1
int nbc1; // colonnes de la matrice M1
boolean diagonale;
// creation de la première matrice :
Matrice M1;
M1 = new Matrice();
System.out.println("Entrez le nombre de lignes de la première matrice : " );
M1.ligne=entrée.nextInt();
System.out.println("Entrez le nombre de colonnes de la première matrice : ");
M1.colonne=entrée.nextInt();
M1.Mat= new int [M1.ligne][M1.colonne];
System.out.println("Votre première matrice est de dimension : (" + M1.ligne +"," +M1.colonne +")");
// saisie de la première matrice :
for (nbl1=0;nbl1<M1.ligne;nbl1++)
for (nbc1=0;nbc1<M1.colonne;nbc1++)
M1.Mat[nbl1][nbc1]=entrée.nextInt();
// appel de la fonction diagonale :
diagonale=matrice_diagonale(M1);
if (diagonale==true) {
System.out.println("La matrice est diagonale."); }
else System.out.println("La matrice n'est pas diagonale.");
public static boolean matrice_diagonale (Matrice M) {
boolean est_diagonale;
int i;
est_diagonale=true;
i=0;
while (est_diagonale==true) {
if (M.Mat[i][i]=0) {
est_diagonale=true;
}
else est_diagonale=false;
i=i+1;
}
return est_diagonale;
}
Il y a une faute qui fait que ca ne fonctionne pas mais je ne vois pas laquelle. Pourriez vous m'aider ?
Merci.
A voir également:
- Matrice en Java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
3 réponses
Faire while (est_diagonale==true) n'est pas suffisant, car tu risques de toujours faire i=i+1; et ce même si tu dépasse M.ligne ou M.colonne alors qu'il qu'il faut bien sûr que tu t'arrêtes dans ces cas limites : while(est_diagonale && i<M.ligne && i<M.colonne)