Petit algorithme, petit soucis..

Résolu
Enzo -  
 Enzo -
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   Statut Membre Dernière intervention   193
 
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
Enzo
 
Ah c'est nikel en le declarant en char, merci beaucoup !
0