c语言自定义交换函数 c语言中的交换函数

C语言:调用自定义交换函数,完成5个浮点数从小到大排列

正如楼上所说,这个方法是很多的。我举一个例子:

成都创新互联从2013年创立,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元尼勒克做网站,已为上家服务,为尼勒克各地企业和个人服务,联系电话:18982081108

#includestdio.h

void swap(double *x,double *y)//定义交换函数

{

double temp;

temp=*x;

*x=*y;

*y=temp;

}

main()

{

int i,j;

double st[]={5,3,1,6,2};

for(i=0;i=3;i++) //冒泡排序

for(j=0;j=3-i;j++)

if(st[j]st[j+1])

swap(st[j],st[j+1]);

for(i=0;i5;i++) //输出

printf("%f\t",st[i]);

}

这个程序只能给5,3,1,6,2排序,要想给任意的数排序稍微改动一下就行了,请楼主自己完成,不会的话随时可以问我。

C语言 自定义函数swap问题

首先 这个 答案 是错的 ,

这样写 会直接 segmentation fault 先给你解释下

char *s1="abc"; 编译器会先 把 “abc” 这个 字符串 放到 ”常量区“ (值不能改) ,

在 分配一个 指针 s1 指向 “abc” 的 开头 也就是 ‘a’ 这个 字符 ,

那就是了 swap() 要改 常量区 的 东西 , 所以 会直接 segmentation fault

现在 把 char *s1="abc" 改成 char s1[]="abc"; 或者 假设 那个 内存可读

然后说后面的

刚才讲了 指针 只能 指向一个 地址 也就是 只能指向 一个 ‘点’

所以 s1 其实 是 指向 ‘a’ 这个 字符 *s1 操作的其实 是 ‘a’ 这个 字符

所以 第一个 字符 互相 交换了

c语言中swap是个什么函数?

C语言中swap函数是自定义的函数,C标准库里没有swap函数。swap函数是用来交换的函数,经常在C语言中排序中会用到。

代码示例:

#includestdio.h

void

swap(int

*a,

int

*b){

int

t;

t

=

*a;

*a

=

*b;

*b

=

t;

}

int

main()

{

int

a=23,b

=

43;

printf("输入的两个要交换的数为:%d,%d\n",a,b);

swap(a,b);

printf("交换后的数为:%d,%d\n",a,b);

return

0;

}

程序运行:

扩展资料

C语言中使用swap()函数,要注意的是,想要交换a,b的值,其实就是相当于要在函数中改变变量的值,要做到这一点,就需要向形式参数传递实际参数的地址了,因为这样把变量的地址复制到函数中的变量里,它们指向的是内存中的同一个地方,在函数中改变这个地方的值,那么外部的变量的值也就改变了。

参考资料:搜狗百科-C语言

C语言中的swap是什么意思?

swap函数一般是一个程序员自定义函数。通常是实现两个变量数值的交换。比如

int a = 2;

int b =3;

swap(a,b); //一般用到变量数值交换,交换后a=3 b = 2;

实现的方法多种多样。比如下面几种写法:

1、通过使用临时变量实现交换。

void swap1(int x,int y)

{

int temp;

temp=x;

x=y;

y=temp;

}

2、通过临时指针变量实现交换。

void swap2(int *x,int *y)

{

int *temp;

temp=x;

x=y;

y=temp;

}

3、借助指针加入临时变量来实现交换。

void swap3(int *x,int *y)

{

int temp;

temp=*x;

*x=*y;

*y=temp;

}

c语言用指针和自定义函数实现数组元素的调换

#include stdio.h

#define N 10

void Swap ( int *a, int *b, int n);

int main(void)

{

int *a, *b;

int num1[N], num2[N];

for (a = num1; a num1 + N; a++)

scanf ("%d", a);

for (b = num2; b num2 + N; b++)

scanf ("%d", b);

a = num1;//重新指向首地址

b = num2;//重新指向首地址

Swap (a, b, N);

printf ("*********交换后**********\n");

for (a = num1; a num1 + N; a++)

printf ("%3d", *a);

printf ("\n");

for (b = num2; b num2 + N; b++)

printf ("%3d", *b);

return 0;

}

void Swap (int *a, int *b, int n)

{

int temp;

int i;

for (i = 0; i n; i++)

{

temp = *(a + i);

*(a + i) = *(b + i);

*(b + i) = temp;

}

}

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

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

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

void swap_int(int*a,int*b)

{

int t;

t = *a;

*a=*b;

*b=t;

}


当前名称:c语言自定义交换函数 c语言中的交换函数
文章转载:http://azwzsj.com/article/hpodco.html