① c语言编写两个函数,min实现返回最小值下标,swap交换任意两个函数的值,主函数实现数组(任意数
#include <stdio.h>
int a[8]={5,8,6,9,3,1,2,4};
int min(int x,int y)
{return a[x]<a[y]?x:y;
}
void swap(int *a,int *b)
{int t;
t=*a;*a=*b;*b=t;
}
int main()
{int i,j,t;
for(i=0;i<7;i++)
for(j=0;j<7-i;j++)
if(min(j,j+1)!=j)swap(&a[j],&a[j+1]);
for(i=0;i<8;i++)
printf("%d ",a[i]);
printf(" ");
return 0;
}
② C语言中swap的作用和用法
swap函数一般是一个程序员自定义函数。
通常是实现两个变量数值的交换,用法比较广泛。
可使用临时变量实现交换;可通过临时指针变量实现交换;可借助指针加入临时变量来实现交换。
return 0;
}
swap1: x:4,y:3
swap2: x:4,y:3
swap3: x:3,y:4
swap4: x:4,y:3
swap5: x:3,y:4
swap6: x:4,y:3
swap7:ppx:3,ppy:4
拓展资料:
计算机中swap函数很多,在不同领域有不同的用法,但都是交换的意思。比如字符串交换swap操作实现交换两个容器内所有元素的功能。要交换的容器的类型必须匹配: 必须是相同类型的容器,而且所存储的元素类型也必须相同。调用了swap函数后,右操作数原来存储的元素被存放在左操作数中,反之亦然。
③ 求一个C语言程序题:编写一个函数SWAP()实现交换两个数位置的功能
#include <stdio.h>
void swap(int *p, int *q);//用传地址的方法交换
void main()
{
int i, j;
scanf("%d%d", &i, &j);//从键盘输入两个交换的数
swap(&i, &j);//传入i,j的地址
printf("i = %d, j = %d\n", i, j);//输出交换后的两个值
}
void swap(int *p, int *q)
{
int temp;//定义临时变量 存放中间值
temp = *p;
*p = *q;
*q = temp;
}
注意:不能直接写void swap(int i, int j);
因为那只是临时变量,函数调用完后,便释放空间,两个值并没有交换。
④ c语言中swap是个什么函数
swap函数一般是一个程序员自定义函数,是实现两个变量数值的交换。
1、比如:
int a = 2;
int b =3;
swap(a,b); //一般用到变量数值交换,交换后a=3 b = 2;
2、通过使用临时变量实现交换。
void swap1(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
(4)c语言调用swapmin函数扩展阅读
C语言swap函数的使用
#include<stdio.h>
void swap(int *pa,int *pb)
{
int temp;
temp=*pa,*pa=*pb,*pb=temp;
}
void main()
{
int a=10,b=20;
swap(&a,&b);//传递的是实参变量a,b的地址
printf("a=%d,b=%d ",a,b);
}
⑤ c语言 函数调用 swap函数 一定要用指针吗
不一定。
void swap(int a,int b)
{
int t;
t=a;
a=b;
b=t;
}
这样写,只是传了一份拷贝给a,b,交换好后,栈清空,没有传回给你原来所要交换的数。而printf放里面可以是因为你的那份拷贝(即a,b)的值是跟你要交换的数一样的,所以行得通。
不用指针的方法就是:
void swap(int &a,int &b)
{
int t;
t=a;
a=b;
b=t;
}
这样就可以了,这个传进去的是原先数据的地址,地址都改变了,值也就交换了。
(5)c语言调用swapmin函数扩展阅读:
关于指针与swap函数
1、用变量的指针交换,其实只是用指针名及指针运算符*访问变量 ,修改了变量的值。
int temp;
int *pa=&a;
int *pb=&b;
temp=*pa; *pa=*pb;*pb=temp;
2、用变量的引用交换,用”别名“访问变量
int temp;
int &aa=a;
int &bb=b;
temp=aa; aa=bb;bb=temp;
3、变量直接交换,用变量名访问变量,修改了变量的值
int temp;
int a=5;
int b=6;
temp=a; a=b; b=temp;
4、2的变形
int* temp;
int* pa=&a; int* pb=&b;
temp=pa; pa=pb;pb=temp;
cout<<*pa<<endls //-----指针交换了指向的地址,如果用*pa访问变量,此时就算是交换了,但是a和b没有交换。