题目描述
设计一个函数,将任意2个整数交换,并在主函数中调用此函数。
输入
任意2个整数
输出
交换后的2个整数
样例输入
1 2
样例输出
2 1
题目分析:
在函数中实现整数交换即可。需要注意,如果函数中传入的是整数,函数调用结束后,函数中所有局部变量都被销毁,所以无法达到预期效果。这时候传入指针,通过对地址进行操作是比较常用的方法。
举个栗子:
运行以下代码:
#include<stdio.h>
void swap(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
swap(a,b);
printf("%d %d",a,b);
return 0;
}
运行结果:
主要原因就是调用完函数之后,里面局部变量被销毁。
用指针来实现就好啦!
运行以下代码:
#include<stdio.h>
void swap(int *a,int *b)
{
int temp=0;
temp=*a;
*a=*b;
*b=temp;
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
swap(&a,&b);
printf("%d %d",a,b);
return 0;
}
运行结果:
欢迎批评指正!