1、借助中间变量完成,此方法直观,易理解,使用最多
2、不需要中间变量,通过变量身的运算完成交换。
参考代码:
方法1:
int a=2,b=3,t
t=a//先将a存储到临时变量t中
a=b//将b存储到a中
b=t//将临时变量中的原a值存储到b中
printf("a=%d b=%d\n", a,b )
方法2:
int a=2,b=3,t
a += b //把两数之和存到a中
b= a-b //用两数和减去b可得原a,存储到b中
a= a-b //因为b现在是原a值,所以,用两数和减去b(原a)可得 原b,存储到a中
此方法,还可以用异或运算来实现,原理相同。
方法 1:(引进变量)
可以认为a、b、c各占一个小格,小格里可以放入数字。具体步骤为:
程序如下:
#include <stdio.h>
int main()
{
int a,b,c
scanf("%d %d",&a,&b)
c=a;
a=b
b=c
printf("a=%d b=%d\n",a,b)
return 0
}
方法 2:()
两个数的互换可以用式子:
a=b-ab=b-aa=b+a来实现。
程序如下:
#include<stdio.h>
int main()
{
int a,b
scanf("%d %d",a,b)
a = a + b
b = a - b
a = a - b
printf("a=%d,b=%d", a, b)
return 0
}
方法 3:(指针)
程序如下:
#include<stdio.h>
int fun(int *p, int *q)
{
int tmp = *p
*p = *q
*q = tmp
}
int main()
{
int a,b
scanf("%d %d",&a,&b)
printf("%d,%d\n", a, b)
fun(&a, &b)
printf("%d,%d\n", a, b)
return 0
}
您好,很高兴回答您的问题。在程序设计中,若是交换两个数的话,是需要结合一个中间变量的。因为在赋值运算时,就是把右边数据的值赋值给左边变量,那么左边变量原来的值就消失了,为了避免出现这种值被覆盖的情况,一定要把原来变量的值先移出来,怎么移呢?就是把原来的值赋值给另一个中间变量。