[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;

:rire:

cpp-nul-bordel
2021-04-14 19:41:06

Le 14 avril 2021 à 19:40:25 :
x ^= y;
y ^= x;

:rire:

...

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 :hap: 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

XiaomiMi11Ultra
2021-04-14 19:54:24

[19:40:25] <Isayamed>
x ^= y;
y ^= x;

:rire:

RueDuKhey
2021-04-14 19:55:06

Tu dis n'imp l'OP, il marche ton code, y compris quand x == y

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.