C语言题目:编写函数,交换两变量的值 。void
swap(int
*a,int*
b)
{
int
temp=0;
temp=*a;
*a=*b;
*b=temp;
}
因为是指针c语言函数变量值交换,只要更换指针内的内容就可以了;
还有一种是
换指针c语言函数变量值交换,就设a指向没存A,b指向内存B,交换后把b指向内存A,把a指向内存B
void
swap(int
*a,int*
b)
{
int
*temp;
temp=a;
a=b;
b=temp;
}
C语言交换变量值的几种方法方法一c语言函数变量值交换:三变量交换 。
#includestdio.h
int main(void)
{
int a,b;
scanf("%d%d",a,b);
int t=a;a=b;b=t;
printf("%d %d\n",a,b);
return 0;
}
方法二c语言函数变量值交换:加减交换
#includestdio.h
int main(void)
{
int a,b;
scanf("%d%d",a,b);
a=a+b;
b=a-b;
a=a-b;
printf("%d %d\n",a,b);
return 0;
}
方法三c语言函数变量值交换:异或交换
#includestdio.h
int main(void)
{
int a,b;
scanf("%d%d",a,b);
a=a^b;b=b^a;a=a^b;//可写成a^=b^=a^=b;
printf("%d %d\n",a,b);
return 0;
}
方法四(黑盒测试下)c语言函数变量值交换:不交换
#includestdio.h
int main(void)
{
int a,b;
scanf("%d%d",a,b);
printf("%d %d\n",b,a);
return 0;
}
5、使用C语言编写一个函数,用于交换两个变量的值(地址传递) 。不知道c语言函数变量值交换你要交换的两个变量类型c语言函数变量值交换,所以这里以整型数据交换为例,以下swap函数实现c语言函数变量值交换了交换两个整型变量值的功能c语言函数变量值交换:
#include stdio.h
// 交换给定指针指向整型变量的值 。
// 参数:
//a - 指向第一个变量的指针
//b - 指向第二个变量的指针
void swap(int* a, int * b);
int main(int argc, int argv)
{
int a = 3, b = 5;
printf_s("交换前:a = %d, b = %d\n", a, b);
swap(a, b);
printf_s("交换后:a = %d, b = %d\n", a, b);
return 0;
}
// 交换给定指针指向整型变量的值 。
// 参数:
//a - 指向第一个变量的指针
//b - 指向第二个变量的指针
void swap(int* a, int* b)
{
// 声明一个临时变量,保存第一个指针指向变量
// 的值 。
// 其中 *a 是取出 a 指针指向变量的值
int temp = *a;
// 将 b 指针指向的值赋值给 a 指针指向变量
(*a) = (*b);
// 将临时变量 temp 中保存的 a 指针指向变量的值赋值给
// b 指针指向的变量 。
(*b) = temp;
}
以上代码运行结果如下:
以下代码实现了使用宏定义作为模板,声明不同类型交换函数的功能,以下以声明double和float为例:
#include stdio.h
// 声明一个函数代码模板,逻辑参考 swap(int* a, int* b)
#define DEF_SWAP_FUNC(Type) void swap_##Type(Type* a, Type* b) \
{ \
Type temp = (*a); \
(*a) = (*b); \
(*b) = temp; \
}
// 使用模板声明并实现一个 double 类型变量交换函数 , 函数名为 swap_double
DEF_SWAP_FUNC(double)
// 使用模板声明并实现一个 float 类型变量交换函数,函数名为 swap_float
DEF_SWAP_FUNC(float)
int main(int argc, int argv)
{
// double 类型数据交换
double da = 5.6, db = 3.5;
printf_s("double 交换前:da = %lf, db = %lf\n", da, db);
swap_double(da, db);
printf_s("double 交换后:da = %lf, db = %lf\n", da, db);
// float 类型数据交换
推荐阅读
- jquery拖拉,js拖拽div
- oracle大表插入数据卡死的简单介绍
- 即时存档不用进游戏,存档游戏软件
- 闪烁灯特效css代码,css闪烁效果
- python返回函数 python返回函数值并退出函数
- 新媒体业绩如何写简历内容,新媒体业绩怎么写
- 网络推广游戏,网络推广游戏犯法吗
- JAVA需要背诵的代码,学java需要记些什么代码
- 电脑上怎么保存学习资料,在电脑上怎么保存资料