您的位置:首页 > 编程语言 > C语言/C++

C语言---交换两个数的内容(谷歌面试题)

2016-09-19 12:13 197 查看

                                          交换两个数的内容

1、给定两个整型变量,将两个值的内容进行交换

#include <stdio.h>
#include <stdlib.h>
int main()

{
int a = 3;
int b = 4;
int c = 0;
c = a;
a = b;
b = c;
printf("a=%d\nb=%d\n",a,b);
system("pause");
return 0;
}

2、不允许创建临时变量,交换两个数的内容。

#include <stdio.h>
#include <stdlib.h>
int main()
{

int a = 2,b = 3;
a = a+b;
b = a-b;
a = a-b;
printf("a=%d\nb=%d\n",a,b);
system("pause");
return 0;
}   但是这个方法容易溢出,还有没有更优化的方法呢???(当然有、、嘻嘻。如下)

#include<stdio.h>
#include<stdlib.h>
int main()
{

int a = 3,b = 4;
a = a^b;
b = a^b;
a = a^b;
printf("a=%d\nb=%d\n",a,b);
system("pause");
return 0;
}

 加入#include<stdlib.h>和system ("pause");是为了阻止输出结果闪退,有些版本可能不需要。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: