【Linux C编程】第二十五章 C中如何进行两个数的交换?
在 C编程语言中交换两个数字意味着交换两个变量的值。假设您有两个变量 var1 和 var2。var1 的值为 20 & var2 的值为 40。因此,交换后 var1 的值将变为 40 & var 2 的值将变为 20。在此博客中将了解如何在 C 中交换两个变量。
- Swapping Two Numbers Using Third Variable
- Swapping Two Numbers Using Without Using Third Variable
- Swapping Function in C
- Swap two numbers using pointers in C
- Swap Two Numbers Using Bitwise XOR
使用第三个变量交换两个数字
逻辑
使用第三个变量交换两个数字背后的想法很简单。将第一个变量的值存储在临时变量中。将第二个变量的值存储在第一个变量中。最后,将临时变量的值存储在第二个变量中。在这个程序中,我们使用一个临时变量来保存第一个变量的值。
-
将 var1 值分配给临时变量:temp = var1
-
将 var2 值分配给 var1:var1 = var2
-
将临时值分配给 var2:var2 = temp
代码:
temp = var1;
var1 = var2;
var2 = temp;
现在,让我们看一下完整的代码。
例子
#include <stdio.h>
int main()
{
int var1, var2, temp;
printf("Enter two integersn");
scanf("%d%d", &var1, &var2);
printf("Before SwappingnFirst variable = %dnSecond variable = %dn", var1, var2);
temp = var1;
var1 = var2;
var2 = temp;
printf("After SwappingnFirst variable = %dnSecond variable = %dn", var1, var2);
return 0;
}
输出:
继续这篇关于在 C 中交换两个数字的文章
不使用第三个变量交换两个数字
在这种交换两个变量的变体中,我们没有使用任何临时变量来存储值。在第一个变量中,我们存储两个变量的总和。然后,在下一步中,我们将通过从总和中减去第二个变量的值并将其存储在第二个变量中来提取第一个变量的值。最后,我们提取2的原始值ND变量&其存储在1日变量。
代码:
var1 = var1 + var2;
var2 = var1 - var2;
var1 = var1 - var2;
现在,让我们看一下完整的代码。
例子
#include <stdio.h>
int main()
{
int var1, var2, temp;
printf("Enter two integersn");
scanf("%d%d", &var1, &var2);
printf("Before SwappingnFirst variable = %dnSecond variable = %dn", var1, var2);
var1 = var1 + var2;
var2 = var1 - var2;
var1 = var1 - var2;
printf("After SwappingnFirst variable = %dnSecond variable = %dn", var1, var2);
return 0;
}
输出:
继续这篇关于在 C 中交换两个数字的文章
C 中的交换函数
您可以在 C 中创建一个交换函数来实现任何交换变体,当您想要交换两个变量时,您可以随时调用该函数。由于我们希望通过交换函数修改 main 的局部变量,我们必须使用指针来修改它们。
例子
void swap(int *num1, int *num2)
{
int temp = *num1;
*num1 = *num2;
*num2 = temp;
}
int main()
{
int var1, var2;
printf("Enter Value of var1 ");
scanf("%d", &var1);
printf("nEnter Value of var2 ");
scanf("%d", &var2);
swap(&var1, &var2);
printf("nAfter Swapping: var1 = %d, var2 = %d", var1, var2);
return 0;
}
输出:
转到下一个变体,我们使用指针交换两个数字。
用C中的指针交换两个数字
您还可以使用指针交换两个变量,其中将变量的地址传递给两个不同的变量。然后,交换它们的值。
代码
num1 = &var1;
num2 = &var2;
temp = *num2;
*num2 = *num1;
*num1 = temp;
现在,让我们看一下完整的代码。
例子
#include <stdio.h>
int main()
{
int var1, var2, *num1, *num2, temp;
printf("Enter the value of var1 and var2n");
scanf("%d%d", &var1, &var2);
printf("Before Swappingnvar1 = %dnvar2 = %dn", var1, var2);
num1 = &var1;
num2 = &var2;
temp = *num2;
*num2 = *num1;
*num1 = temp;
printf("After Swappingnvar1 = %dnvar2 = %dn", var1, var2);
return 0;
}
输出:
转到 C 中交换变量的最后一个变体。让我们了解如何使用按位异或运算符交换两个变量。
使用按位异或交换两个数字
XOR 运算符的工作方式与不使用临时变量的交换工作方式类似。我们提取计算两个变量的异或。然后我们提取单个值并交换它们。
假设 var1 = 20 和 var2 = 40。二进制值 20 = 10100 和 40 = 101000。
例子:
Var1 = Var1 ^ Var2
Var1 = 10100 ^ 101000
Var1 = 111100
Var2 = Var1 ^ Var2
Var2 = 111100 ^ 101000
Var2 = 10100
Var1 = Var1 ^ Var2;
Var1 = 111100 ^ 10100
Var1 = 101000
交换 2 个数字后的最终值:var1 = 40 和 var2 = 20
var1 = var1 ^ var2;
var2 = var1 ^ var2;
var1 = var1 ^ var2;
现在,让我们看一下完整的代码。
#include <stdio.h>
int main()
{
int var1, var2, temp;
printf("Enter two integersn");
scanf("%d%d", &var1, &var2);
printf("Before SwappingnFirst variable = %dnSecond variable = %dn", var1, var2);
var1 = var1 ^ var2;
var2 = var1 ^ var2;
var1 = var1 ^ var2;
printf("After SwappingnFirst variable = %dnSecond variable = %dn", var1, var2);
return 0;
}
输出:
现在,在完成上述程序后,您将了解在 C 中交换两个数字的所有变体。我希望这篇博客能够为您提供信息并增加价值。
- 点赞
- 收藏
- 关注作者
评论(0)