1、你原代码函数那样写是实现不了数组交换的,我用你的代码小做修改。你看下吧。说明:^=只是利用异或来实现2个地址的数值交换,和你定义一个变量做交换是一个效果。
创新互联公司专注于企业成都全网营销推广、网站重做改版、东莞网站定制设计、自适应品牌网站建设、H5页面制作、商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为东莞等各大城市提供网站开发制作服务。
2、你这个只是试图交换两个数组的首地址,而数组的首地址是常量,不会交换成功的。你的swap中要用循环一次交换两个数组的对应元素才能实现你想要的功能。
3、C语言.定义一个函数实现交换两个整数的功能,(用指针做函数参数)。
4、在程序适当位置加上输出地址的语句,即可看出为什么回到主程序后,x,y的值为什么不交换。为了更形象,可以用图表示它们的关系:可见,交换的只是swap函数中的a,b值,对主函数中的a,b值没有影响。
可以啊,给你写了个完整的程序,为了比较好理解,就把循环分开写了,实现就是这个意思,如果你想扩展的话可以用宏定义来实现。
这两个坐标分别代表行和列,所以“行列互换”实际上就是这两个坐标互换啊。
scanf那行里的a[i][j]要写成&a[i][j],输入就正常的输入就行了,其实scanf读入数字的时候,数字可以用空格、回车或者TAB间隔,比如说一个2x2的数组,你输入 10 11 12 13 或者输入10 11 12 13都是可以的。
首先,你的程序逻辑有问题,在交换的时候,所有以对角线为中心的对称元素交换了两次,相当于没有交换;所以如果换成a[i][j]输出的话,结果与没有交换前的一样。
1、说明:^=只是利用异或来实现2个地址的数值交换,和你定义一个变量做交换是一个效果。
2、你这个exchange函数就可以。只不过你的程序里有几处语法错误。改了就可以了。