用C语言实现给定两个整形变量的值,将两个值的内容进行交换。(4种方法)
2017-07-29 16:53
746 查看
1.不创建临时变量(效率低)
(1)加减
test.c
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a + b;
b = a - b;
a = a - b;
printf("%d %d", a, b);
system("pause");
return 0;
}
(2)异或(同为0,异为1),此处对num1和num2的二进制序列进行异或。
test.c
#include<stdio.h>
int main()
{
int num1 = 10;//01010
int num2 = 20;//10100
num1 = num1^num2;//01010^10100=11110
num2 = num1^num2;//11110^10100=01010//10
num1 = num1^num2;//11110^01010=10100//20
printf("%d %d", num1, num2);
system("pause");
return 0;
}
2.创建临时变量
(1)创建临时变量temp
test.c
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
int temp;
temp = a;
a = b;
b = temp;
printf("%d %d", a, b);
system("pause");
return 0;
}
(2)用Swap函数
test.c
实参是形参的一份临时拷贝。
指针变量是存放地址的,如果想找到原来那个空间,加“ * ”,解引用。
#include<stdio.h>
void Swap(int *px,int*py)//px,py存放n1,n2的地址,*解引用找到你n1,n2里面的内容,进行远程操作
{
int temp = *px;
*px = *py;
*py = temp;
}
int main()
{
int n1 = 10;//n1,n2没有直接用,而是交给px,py进行维护,*px,*py才真正用
int n2 = 20;
Swap(&n1, &n2);
printf("%d %d\n", n1, n2);
system("pause");
return 0;
}运行界面
(1)加减
test.c
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a + b;
b = a - b;
a = a - b;
printf("%d %d", a, b);
system("pause");
return 0;
}
(2)异或(同为0,异为1),此处对num1和num2的二进制序列进行异或。
test.c
#include<stdio.h>
int main()
{
int num1 = 10;//01010
int num2 = 20;//10100
num1 = num1^num2;//01010^10100=11110
num2 = num1^num2;//11110^10100=01010//10
num1 = num1^num2;//11110^01010=10100//20
printf("%d %d", num1, num2);
system("pause");
return 0;
}
2.创建临时变量
(1)创建临时变量temp
test.c
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
int temp;
temp = a;
a = b;
b = temp;
printf("%d %d", a, b);
system("pause");
return 0;
}
(2)用Swap函数
test.c
实参是形参的一份临时拷贝。
指针变量是存放地址的,如果想找到原来那个空间,加“ * ”,解引用。
#include<stdio.h>
void Swap(int *px,int*py)//px,py存放n1,n2的地址,*解引用找到你n1,n2里面的内容,进行远程操作
{
int temp = *px;
*px = *py;
*py = temp;
}
int main()
{
int n1 = 10;//n1,n2没有直接用,而是交给px,py进行维护,*px,*py才真正用
int n2 = 20;
Swap(&n1, &n2);
printf("%d %d\n", n1, n2);
system("pause");
return 0;
}运行界面
相关文章推荐
- C语言 实现 给定两个整形变量的值,将两个值的内容进行交换
- 1. 给定两个整形变量的值,将两个值的内容进行交换。 2. 不允许创建临时变量,交换两个数的内容(附加题) 3. 求10 个整数中最大值。 4. 写一个函数返回参数二进制中 1 的个数
- 给定两个整形变量的值,将两个值的内容进行交换
- 给定两个整形变量的值,将两个值的内容进行交换
- 给定两个整形变量的值,将两个值的内容进行交换
- C语言—给定两个整形变量的值,将两个值的内容交换
- 【C语言】给定两个整型变量的值,将两个值的内容进行交换(不同方法)
- 壬戌日__. 给定两个整形变量的值,将两个值的内容进行交换。
- 给定两个整形变量的值,将两个值的内容进行交换
- 给定两个整形变量的值,将两个值的内容进行交换。
- 给定两个整形变量的值,不创建中间变量将两个值的内容进行交换
- 给定两个整形变量的值,将两个值的内容进行交换
- 给定两个整形变量的值,将两个值的内容进行交换
- 给定两个整形变量的值,将两个值的内容进行交换。
- 给定两个整形变量的值,将两个值的内容进行交换
- 给定两个整形变量的值,将两个值的内容进行交换。
- [置顶] 给定两个整形变量的值。将两个值得内容进行交换
- 给定两个整形变量的值,将两个值的内容进行交换。
- 【C语言】给定两个整型变量的值,将两个值的内容进行交换(不同方法)
- 1. 给定两个整形变量的值,将两个值的内容进行交换。