Petit algorithme, petit soucis..

Résolu/Fermé
Enzo - 28 août 2011 à 16:38
 Enzo - 28 août 2011 à 18:17
Bonjour à tous,

Je rencontre un probleme au niveau de mon code : je n'arrive pas à échanger les valeurs des variables ( à l'aide d'un variable temporaire ) alors qu'elles sont du même type ! Bref, voici mon code :

public static void main(String[] args) {

int pos1, pos2, tmp, i;
char x;
char tab[] = {'o','u','a','l','l','a','!'};

do{
pos1 = (int)(Math.random()*tab.length + 1);
pos2 = (int)(Math.random()*tab.length + 1);
tmp = tab[pos2]; // ici, tout fonctionne
tab[pos2] = tab[pos1]; // là aussi
tab[pos1] = tmp; // bam ! c'est là qu'Eclipse grogne.
for(i = 0;i < tab.length;i++){
System.out.print(tab[i] + " ");
}
System.out.print("Saisis une lettre ! ");
x = Keyboard.readChar();
}while( x != 's');
}

En effet, Eclipse me certifie que qu'il ne peut convertir "int to char" alors que char ne correspond qu'aux valeurs insérées dans le tableau et celui-ci ! Alors qu'ici, je veux tout simplement modifier la position des éléments du tableau, donc de l'integer... Quelqu'un sait s'il vous plait ?

1 réponse

supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
28 août 2011 à 16:50
tu as un tableau de char, or ta variable temp est un int

Si tu mets un char (1 octet) dans un int (4 octets) pas de pb, par contre mettre un int dans un char pose problème ! même si le compilateur comprend ce que tu veux faire il te mettra un warning.

Solution : utilise un char comme variable temporaire

char temp;
0
Ah c'est nikel en le declarant en char, merci beaucoup !
0