Palindrome

Fermé
Gena_smile Messages postés 1 Date d'inscription lundi 12 mars 2012 Statut Membre Dernière intervention 12 mars 2012 - 12 mars 2012 à 23:16
 Utilisateur anonyme - 14 mars 2012 à 20:08
Bonjour,

Je veux écrire un programme java qui teste si un tableau est un palindrome
J'ai essayé mais il ya une erreur dans le main du programme ,que j'arrive pas à la résoudre

public class Palindrome {

public static boolean palindrome(int [] tab){
boolean r=false;

int j= tab.length;
for(int i=0;(i<=j)&&(r=false);i++){
if (tab[i]==tab[j]){
r=true;
}
else{
i++;
j--;}
}return r;
}



public static void main(String[] args) {
int[]tab={1,2,3,4,3,2,1}; //<gras>il affiche :incompatible type</gras>
if (palindrome(tab=true))
{
System.out.print("Le tableau est palindrome");
}
else

System.out.print("Le tableau n'est palindrome");
}
}



Et merci d'avance

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
13 mars 2012 à 08:55
Salut.
La programmation ce n'est pas jeter en vrac des instruction qui ont l'air de loin vaguement juste et de voir ce que ça donne !
Chaque chose que tu écris doit être pensé, justifier et comprise.
Qu'est-ce que veux dire cette instruction :
if (palindrome(tab=true)) ?????
Je passe sur les autres erreurs qui sont plus minime.
Puis viens ta boucle for dans la fonction palindrome : compliqué. La base est bonne mais tu va chercher trop loin. Il y a plus simple : le tableau est un palindrome jusqu'à ce qu'on prouve le contraire, ça ne sert à rien d'aller jusqu'au bout. En plus, je crois que ta boucle ne fonctionne pas.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
13 mars 2012 à 09:14
En effet, la boucle ne peut pas fonctionner à cause du &&(r=false)
Il faut absolument distinguer l'opérateur d'affectation = avec l'opérateur de comparaison ==

Remarque : il n'y a pas d'erreur sur la ligne en gras.
0
Utilisateur anonyme
14 mars 2012 à 20:08
Salut,

C'est normal:

La méthode palindrome attend le paramètre (int [] tab) :
donne le lui.

Tu attend en retour un boolean :
demande le.

boolean r = palindrome(tab);
  if(r)
         {
.........


Il n'y aura pus qu'à mettre palindrome(...) au point...
0