交换两个变量

来源:互联网 发布:u盘重新安装mac os x 编辑:程序博客网 时间:2024/05/23 07:25

第一种:创建临时变量

1. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() {  int i = 1;  int j = 2;  scanf("%d%d", &i, &j);  int t = 0;  t = i;  i = j;  j = t;  printf("%d %d\n", i, j);  system("pause");  return 0; } 2.使用 函数( swap() ) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void  swap(int *pi, int *pj) {  int temp = 0;  temp = *pi;  *pi = *pj;  *pj = temp; } int main() {  int i = 1;  int j = 2;  scanf("%d%d", &i, &j);  swap(&i, &j);  printf("%d %d\n", i, j);  system("pause");  return 0; }

第二种:不创建临时变量

1. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() {  int i = 1;  int j = 2;  scanf("%d%d", &i, &j);  i = i + j;  j = i - j;  i = i - j;  printf("%d %d\n", i, j);  system("pause");  return 0; } 这种方法可能会溢出。 2.使用位运算。(最佳方法) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() {  int i = 1;  int j = 2;  scanf("%d%d", &i, &j);  i = i ^ j;  j = i ^ j;  i = i ^ j;  printf("%d %d\n", i, j);  system("pause");  return 0; }
原创粉丝点击