Bonjour à tous,
je reviens à la charge avec un autre problème.
Alors, on me demande de corriger plusieurs lignes de code en java que voici:
public class TesterValider {
public void testerValider(int grille[][]) {
Boloean solution = true;
nbelement = 0;
// testez le premier élément de la ligne avec les autres éléments de cette même ligne
for (int i = 0; i < grille.length; i++) {
int max = grille[i][0];
for (int e = 1; e < grille[i].length; e++) {
// on commence par 1, on compare à la valeur max et on s'assure que max est différent de 0.
if (grille[i][e] = max && max != 0) {
solution = false;
System.out.println("la grille est non valide ! ");
break;
}
if (grille[i][e] != 0) {
nbelement++;
}
max = grille[i][e];
}
}
if (soltion && max < 16) {
solution = false;
System.out.println("la grille est non valide ! ");
}
}
public static void main(String[] args) {
int[][] grille = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {1, 3}, {4, 6}, {7, 9}};
testerValider(grille);
}
}
Voici ce que j'ai corrigé, mais il y a trois faute où je ne sais pas quoi faire:
public class TesterValider {
public void testerValider(int grille[][]) {
Boolean solution = true;
int nbelement = 0;
// testez le premier élément de la ligne avec les autres éléments de cette même ligne
for (int i = 0; i < grille.length; i++) {
int max = grille[i][0];
for (int e = 1; e < grille[i].length; e++) {
// on commence par 1, on compare à la valeur max et on s'assure que max est différent de 0.
if (grille[i][e] = max && max != 0) {
solution = false;
System.out.println("la grille est non valide ! ");
break;
}
if (grille[i][e] != 0) {
nbelement++;
}
max = grille[i][e];
}
}
if (solution && max < 16) {
solution = false;
System.out.println("la grille est non valide ! ");
}
}
public static void main(String[] args) {
int[][] grille = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {1, 3}, {4, 6}, {7, 9}};
testerValider(grille);
}
}
J'ai essayé de les mettre en gras mais c'est pas top alors je vais les recopier ici:
if (grille[i][e] = max && max != 0) {
ensuite
if (solution && max < 16) {
et pour finir
testerValider(grille);
première erreur :
pour tester il faut 2 signes "egal", sinon c'est une affectation
tu dois donc ecrire if (grille[i][e] == max ...)
deuxieme erreur:
a cet endroit du code, max n'est pas cnnue puisque que tu l'a déclarée dans une boucle
tu peux par exemple resoudre ca en faisant
Boolean solution = true; (ligne 3)
int nbelement = 0;
int max= 0;
et en remplacant
int max = grille[i][0];
par
max = grille[i][0]; (ligne 7)
troisieme erreur:
problèeme de sécurité
tu peux resoudre en déclarant ta fonction "main" sans le static
Je te remercie pour ton aide, alors en faisant ce que tu m'as dit j'ai refait le tout et ça me semble correct:
public class TesterValider {
public void testerValider(int grille[][]) {
Boolean solution = true;
int nbelement = 0;
int max = 0;
// testez le premier élément de la ligne avec les autres éléments de cette même ligne
for (int i = 0; i < grille.length; i++) {
max = grille[i][0];
for (int e = 1; e < grille[i].length; e++) {
// on commence par 1, on compare à la valeur max et on s'assure que max est différent de 0.
if (grille[i][e] == max && max != 0) {
solution = false;
System.out.println("la grille est non valide ! ");
break;
}
if (grille[i][e] != 0) {
nbelement++;
}
max = grille[i][e];
}
}
if (solution && max < 16) {
solution = false;
System.out.println("la grille est non valide ! ");
}
}
public void main(String[] args) {
int[][] grille = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {1, 3}, {4, 6}, {7, 9}};
testerValider(grille);
}
}
je l'ai exécuté et ça marche, j'obtient ça:
123456789
456789123
789123456
214365897
365897214
897214365
531642978
642978531
978531642
Encore merci
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :