[Langage C] 5 astuces pour vous apprendre à échanger facilement des valeurs de variables

little bottle
Libérer: 2019-04-27 11:15:28
avant
3630 Les gens l'ont consulté

L'opération d'échange des valeurs de deux variables est souvent utilisée en langage C. De nombreuses personnes se posent également des questions telles que comment échanger les valeurs de deux variables sans utiliser de variables temporaires. résumé ici. Il y a 5 méthodes au total. J'espère que vous gagnerez tous quelque chose en le lisant.

1. Méthode des variables temporaires

Explication de la méthode : Utiliser la méthode des variables temporaires comme transition intermédiaire, c'est la méthode la plus simple et la plus facile à laquelle tout le monde peut penser. est utilisé dans diverses applications et doit être maîtrisé avec compétence.

#include<stdio.h>
int main(void){
     int a=1,b=2,tmp;     
     tmp =a;     
     a=b;     
     b=tmp;     
    printf("%d %d",a,b);
     return 0; 
}
Copier après la connexion

2. Méthode d'échange d'addition et de soustraction

Explication de la méthode : Comme son nom l'indique, utilisez la méthode d'addition et de soustraction en mathématiques pour effectuer l'échange. Tout d'abord, enregistrez temporairement le résultat de. a+b dans la variable a , puis le b échangé peut être obtenu en soustrayant le a modifié et le b original. L'inconvénient est que le résultat de a+b peut être hors limites.

#include<stdio.h>
int main(void){     
       int a=1,b=2;
     a = a + b;
     b = a - b;
     a = a - b;     
     printf("%d %d",a,b);     
     return 0;
 }
Copier après la connexion

3. Méthode d'échange de multiplication et de division

Explication de la méthode : Cette méthode est similaire à l'addition et à la soustraction, c'est-à-dire que l'addition et la soustraction sont remplacées par la multiplication et la division. est que parce que la multiplication est utilisée, elle est plus compliquée que l'addition. Il est facile de franchir la ligne et doit être utilisée avec prudence.

#include<stdio.h>
int main(void){     
       int a=1,b=2;
     a = a * b;
     b = a / b;
     a = a / b;     
     printf("%d %d",a,b);     
     return 0;
 }
Copier après la connexion

4. Méthode d'échange XOR

Explication de la méthode : Utiliser intelligemment l'opération XOR pour l'échange Cette méthode profite principalement des caractéristiques de XOR. d'abord. Pour a, car a^b^b=a, l'échange peut être effectué en douceur. Cette méthode est parfaite et il n'y a pas de problème transfrontalier.

#include<stdio.h>
int main(void){    
 int a=1,b=2;     
 a = a ^ b;     
 b = a ^ b;     
 a = a ^ b;    
 printf("%d %d",a,b);    
 return 0; }
Copier après la connexion

5. Méthode d'échange par décalage

Explication de la méthode : Cette méthode n'est pas couramment utilisée. Le principe est de diviser la valeur du type int d'origine a en 16 bits élevés et faibles. 16 bits, ce qui équivaut à 16 bits supplémentaires d'espace de stockage temporaire pour le chiffre d'affaires. L'inconvénient est que si a ou b dépasse 16 bits, cette méthode échouera. Cette méthode est plus compliquée et sujette aux erreurs, elle n'est donc pas recommandée. pour que tout le monde puisse l'utiliser.

#include<stdio.h>
int main(void){     
int a=1,b=2;
     a <<= 16;
     a |= b;
     b = a >> 16;
     a = a & 0xffff;     
     printf("%d %d",a,b);     
     return 0;
 }
Copier après la connexion

Résumé de la réflexion :
En fait, ces cinq méthodes sont essentiellement divisées en trois catégories, l'une est celle des variables temporaires, l'autre est celle des opérations d'addition, de soustraction, de multiplication et de division, et la troisième est celle des bits opérations. En raison de leurs avantages et inconvénients respectifs, je vous recommande personnellement d'essayer d'utiliser la méthode des variables temporaires et la méthode d'échange XOR, qui est également largement utilisée dans d'autres endroits. Concentrons-nous sur sa maîtrise. . Tout le monde.

Tutoriels associés : Tutoriel langage C

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal