c语言中的交换函数的书写 c语言中交换函数怎么写

C语言怎么用自定义函数将两个数交换

要用函数实现两个数的交换,则函数参数必须定义为指针形式,否则函数中对数值的修改将不会影响主调函数,这是C语言的规则。

创新互联公司提供网站设计制作、成都网站设计、网页设计,成都品牌网站建设1元广告等致力于企业网站建设与公司网站制作,10多年的网站开发和建站经验,助力企业信息化建设,成功案例突破1000+,是您实现网站建设的好选择.

所以,以整型为例,自定义函数书写如下:

void swap_int(int*a,int*b)

{

int t;

t = *a;

*a=*b;

*b=t;

}

c语言交换两个数的函数

#include stdio.h

#include stdlib.h

int main(void)

{ int a,b;

void swap(int *x,int *y);

scanf("%d%d",a,b);

swap(a,b);

printf("%d%d\n",a,b);

system("PAUSE");

return 0;

}

void swap(int *x,int *y)

{

int c;

c=*x;

*x=*y;

*y=c;

}

5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。

不知道你要交换的两个变量类型,所以这里以整型数据交换为例,以下swap函数实现了交换两个整型变量值的功能:

#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 类型数据交换

float fa = 3.4, fb = 6.8;

printf_s("float 交换前:fa = %f, fb = %f\n", fa, fb);

swap_float(fa, fb);

printf_s("float 交换前:fa = %f, fb = %f\n", fa, fb);

return 0;

}

运行结果如下:


网站栏目:c语言中的交换函数的书写 c语言中交换函数怎么写
本文来源:http://hbruida.cn/article/ddepdjh.html