
正文
两个数组元素互换c语言,c语言数组两个数互换
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中实现两个一维数组间元素的交换
逐个元素交换即可。前提是两个数组必须有同样的长度 否则无法交换。
当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。
你原代码函数那样写是实现不了数组交换的,我用你的代码小做修改。你看下吧。说明:^=只是利用异或来实现2个地址的数值交换,和你定义一个变量做交换是一个效果。
fot(i=0;i10;i++){if(a[i]==M) //找元素 {a[i]=K;break;} //修改值。
有两种方法可以实现。为方便说明,定义两个整型数组a,b,并实现将a中的值赋值到b中。int a[4] = {1,2,3,4}, b[4]; 通过数组遍历,逐个赋值。
int[][] arr2 = {{1},{2}}; arr2中,arr2[1]表示的位置(也就是一维阵列{2}所在的位置)就可以放置一个一维阵列。
相关问答
Q1: C语言中两个数组可以互换元素吗?例如a[3]=a[4]可以吗?
如果你说的只是下标的名字,那当然可以互换。a[i][j] 表示i 行 j列,a[j][i] 表示j行i列。
b[5] = a[5];肯定是不行的,那样只改了b[5]其他元素没改。
printf(%5d,a[i][j]);表示将a的i行j列的数字输出显示,b[j][i]=a[i][j];就是这个函数最重要的一部分,b的j行i列等于a的i行j列,其实就是行列互转了。
你原代码函数那样写是实现不了数组交换的,我用你的代码小做修改。你看下吧。说明:^=只是利用异或来实现2个地址的数值交换,和你定义一个变量做交换是一个效果。
Q2: C语言问题:怎样用指针和函数实现两个数组的交换
你原代码函数那样写是实现不了数组交换的,我用你的代码小做修改。你看下吧。说明:^=只是利用异或来实现2个地址的数值交换,和你定义一个变量做交换是一个效果。
逐个元素交换即可。前提是两个数组必须有同样的长度 否则无法交换。
在 huan(int *p1,int *p2)这个函数中,交换的只是两个指针的指向,但是函数的结束、返回,这两个指针本身就消失了(它们的值并不会传回到main()函数中)所以,最后的结果没有交换。
在程序适当位置加上输出地址的语句,即可看出为什么回到主程序后,x,y的值为什么不交换。为了更形象,可以用图表示它们的关系:可见,交换的只是swap函数中的a,b值,对主函数中的a,b值没有影响。
两个数组元素互换c语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言数组两个数互换、两个数组元素互换c语言的信息别忘了在本站进行查找喔。







