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");是为了阻止输出结果闪退,有些版本可能不需要。
相关文章推荐
- 不允许创建临时变量,交换两个数的内容
- 不允许创建临时变量,交换两个数的内容
- 不允许创建临时变量,交换两个数的内容(用异或实现)
- 【面试题】C语言:使用函数实现两个数的交换
- C语言中不允许创建临时变量,交换两个数的内容
- C语言学习笔记——两个数交换位置的多种方式
- 80x86 汇编语言:实现两个字符串内容交换
- 汇编交换两个数的内容
- 【C语言】不允许创建临时变量,交换两个数的内容。
- 交换两个数内容,无临时变量(初)
- 不允许创建临时变量,交换两个数的内容
- 不创建临时变量,交换两个数的内容
- 不允许创建临时变量,交换两个数的内容
- 不允许创建临时变量,交换两个数的内容(用加减乘除实现)
- C语言 不允许创建临时变量,交换两个数的内容
- 不允许创建临时变量,交换两个数的内容
- 不允许创建临时变量,交换两个数的内容
- 【C语言】不允许创建临时变量,交换两个数的内容
- 【C语言】交换两个数的内容
- 交换两个数内容,不含变量(改)