C语言 不使用第三个变量交换两个数。 输入提示信息为 "enter value for a and b:" 输入格式为 "%d,%d" 输出提示信息和格式为 "after sawpping the value of a and b: %d %d" 例如 enter value for a and b:3,4 after sawpping the value of a and b: 4 3
时间: 2024-03-16 16:47:09 浏览: 97
好的,这是一道经典的 C 语言面试题。以下是代码实现:
```c
#include <stdio.h>
int main() {
int a, b;
printf("enter value for a and b:");
scanf("%d,%d", &a, &b);
printf("before swapping the value of a and b: %d %d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("after swapping the value of a and b: %d %d\n", a, b);
return 0;
}
```
这里的思路是利用加减法,先将 a 和 b 相加,然后让 b 等于 a + b,再让 a 等于 a + b - b,即 a 的原始值,这样就完成了不使用第三个变量交换两个数的操作。
相关问题
c语言编写代码:不使用第三个变量交换两个数。 输入提示信息为 "enter value for a and b:" 输入格式为 "%d,%d" 输出提示信息和格式为 "after sawpping the value of a and b: %d %d" 例如 enter value for a and b:3,4 after sawpping the value of a and b: 4 3
好的,这是一个经典的面试题,可以使用位运算来实现不使用第三个变量交换两个数。以下是代码实现:
```c
#include <stdio.h>
int main() {
int a, b;
printf("enter value for a and b:");
scanf("%d,%d", &a, &b);
printf("before swapping: a=%d, b=%d\n", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("after swapping: a=%d, b=%d\n", a, b);
return 0;
}
```
在这个程序中,我们首先使用 `scanf` 函数从用户输入中读取两个整数值,然后使用位运算来交换它们的值。具体来说,我们将 `a` 和 `b` 分别与它们的异或值进行异或操作,从而实现交换。最后,我们使用 `printf` 函数输出交换后的值。
阅读全文