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
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
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)