[PROGRAMMATION] Devinez pourquoi ces codes est faux
cpp-nul-bordel
2021-04-14 19:38:11
Un facile pour commencer
//x est échangé avec y
void swap(int &x, int &y) {
x ^= y;
y ^= x;
x ^= y;
}
encorebanni65
2021-04-14 19:38:48
Tu as besoin d'une 3eme variable pour garder la valeur intermédiaire
cpp-nul-bordel
2021-04-14 19:39:09
Le 14 avril 2021 à 19:38:48 :
Tu as besoin d'une 3eme variable pour garder la valeur intermédiaire
Non
BideDeBiden
2021-04-14 19:39:31
Le 14 avril 2021 à 19:38:48 :
Tu as besoin d'une 3eme variable pour garder la valeur intermédiaire
Il utilise ^= donc pas besoin
Isayamed
2021-04-14 19:40:25
x ^= y;
y ^= x;
cpp-nul-bordel
2021-04-14 19:41:06
Le 14 avril 2021 à 19:40:25 :
x ^= y;
y ^= x;
...
whitesmoke
2021-04-14 19:41:32
ça veut dire quoi ça en programmation ? "^=" ?
sinon concernant ta fonction, le swap ne va pas fonctionner car y retrouvera la valeur y, donc il n' intervertira pas les valeurs (les deux auront la même valeur)
void swap(int &x, int &y) {
tmp = *x;
*y = *x;
*x = tmp;
}
dans ton cas, déjà si tu utilise les pointeurs -> tu peux utiliser une valeur temporaire pour le swap
cpp-nul-bordel
2021-04-14 19:42:28
Le 14 avril 2021 à 19:41:32 :
ça veut dire quoi ça en programmation ? "^=" ?
sinon concernant ta fonction, le swap ne va pas fonctionner car y retrouvera la valeur y, donc il n' intervertira pas les valeurs (les deux auront la même valeur)
dans ton cas, déjà si tu utilise les pointeurs -> tu peux utiliser une valeur temporaire pour le swap
^ c'est le xor
^= xor et affectation
L'explication est pas la bonne
GodOfGuerre
2021-04-14 19:44:38
Il marche parfaitement ton code, je ddb
cpp-nul-bordel
2021-04-14 19:45:16
Le 14 avril 2021 à 19:44:38 :
Il marche parfaitement ton code, je ddb
Non page2 ou dans 3min je donne un contre exemple du coup, et le prochain
TheKingWhoCared
2021-04-14 19:47:41
Le 14 avril 2021 à 19:42:28 :
Le 14 avril 2021 à 19:41:32 :
ça veut dire quoi ça en programmation ? "^=" ?
sinon concernant ta fonction, le swap ne va pas fonctionner car y retrouvera la valeur y, donc il n' intervertira pas les valeurs (les deux auront la même valeur)
dans ton cas, déjà si tu utilise les pointeurs -> tu peux utiliser une valeur temporaire pour le swap
^ c'est le xor
^= xor et affectation
Mais qu'est-ce qu'il raconte.
Ça veut faire le malin mais c'est infichu d'être clair ne serait-ce qu'une ligne.
Je booste.
cpp-nul-bordel
2021-04-14 19:48:21
La réponse
Avec x= y ça marche pas, le xor efface tout
Le code qui marche
void XorSwap(int *x, int *y)
{
if (x != y)
{
*x ^= *y;
*y ^= *x;
*x ^= *y;
}
}
cpp-nul-bordel
2021-04-14 19:48:55
Le 14 avril 2021 à 19:47:41 :
Le 14 avril 2021 à 19:42:28 :
Le 14 avril 2021 à 19:41:32 :
ça veut dire quoi ça en programmation ? "^=" ?
sinon concernant ta fonction, le swap ne va pas fonctionner car y retrouvera la valeur y, donc il n' intervertira pas les valeurs (les deux auront la même valeur)
dans ton cas, déjà si tu utilise les pointeurs -> tu peux utiliser une valeur temporaire pour le swap
^ c'est le xor
^= xor et affectation
Mais qu'est-ce qu'il raconte.
Ça veut faire le malin mais c'est infichu d'être clair ne serait-ce qu'une ligne.
Je booste.
Wtf ?
a ^ b === a xor b
a ^= b === a = a xor b
GodOfGuerre
2021-04-14 19:49:39
Le 14 avril 2021 à 19:48:21 :
La réponse
Avec x= y ça marche pas, le xor efface tout
Le code qui marche
void XorSwap(int *x, int *y)
{
if (x != y)
{
*x ^= *y;
*y ^= *x;
*x ^= *y;
}
}
Chez moi ca marche
OnixCheat
2021-04-14 19:49:42
Encore une histoire de bit de signe qui fout la merde je suppose
cpp-nul-bordel
2021-04-14 19:51:27
Le 14 avril 2021 à 19:49:39 :
Le 14 avril 2021 à 19:48:21 :
La réponse
Avec x= y ça marche pas, le xor efface tout
Le code qui marche
void XorSwap(int *x, int *y)
{
if (x != y)
{
*x ^= *y;
*y ^= *x;
*x ^= *y;
}
}
Chez moi ca marche
Isayamed
2021-04-14 19:53:51
Ca fonctionne aussi chez moi
RueDuKhey
2021-04-14 19:55:06
Tu dis n'imp l'OP, il marche ton code, y compris quand x == y