C语言如何将二维数组中两个元素交换位置

比方说一个二维数组:BHPDIN怎么样把I和H的位置互换变成:BIPDHN调用函数怎么做?... 比方说一个二维数组:
BHP
DIN
怎么样把I和H的位置互换变成:
BIP
DHN
调用函数怎么做?
展开
 我来答
匿名用户
推荐于2017-09-04
展开全部
可以让数组进行转置来实现,参考如下:
public class TestTransposition {
int col;
int row;
/**转换方法 将一个数组进行转置
* 原理很简单
*
* @param input
* @return
*/
public int[][] trans(int[][] input) {
int[][] output = null;
row = input.length;
if (row $amp;>amp;$nbsp;0) {
col = input[0].length;
}
output = new int[col][row];
for (int i = 0; i $amp; for (int j = 0; j $amp; output[j][i] = input[i][j];
}
}
return output;
}
public static void main(String[] args){
//若是需要得到转置数组,应该调用上面的转置方法
// int[][] in={{1,2,3},{3,4,5}};
// int[][] out=new TestTransposition().trans(in);
// for (int i = 0; i $amp; // for (int j = 0; j $amp; // System.out.print(out[i][j]);
// }
// System.out.println("");
// }
//若只是想输出得到效果 这应该是可以的
int[][] in={{1,2,3},{3,4,5}};
for(int i=0;i<in[0].length;i++){
for(int j=0;j<in.length;j++){
System.out.print(in[j][i]);
}
System.out.println("");
}
}
/*a[2][3]---->a[3][2]
* a[0][0]---->a[0][0]
* a[0][1]---->a[1][0]
* a[0][2]----->a[2][0]
* a[1][0]---->a[0][1]
* a[1][1]---->a[1][1]
* a[1][2]----->a[2][1]
*/
//故此 初步想法应是通过反向循环,即先循环列,在循环行来实现。

}
潮汐之涌动
推荐于2017-09-07 · TA获得超过439个赞
知道小有建树答主
回答量:287
采纳率:100%
帮助的人:158万
展开全部
t=array[0][1];
array[0][1]=array[1][1];
array[1][1]=t;
跟一维数组的元素交换是一样的啦
更多追问追答
追问
把它写成函数在主程序中调用该怎么做?
追答
void func(char array[2][3],int x1,int y1,int x2,int y2){
char t;
t=array[x1][y1];
array[x1][y1]=array[x2][y2];
array[x2][y2]=t;

}
调用时func(array,0,1,1,1);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流逝悲傷enjoy
2014-06-22
知道答主
回答量:10
采纳率:0%
帮助的人:1万
展开全部
用一个变量,如交换a和b,加一个t。。 t=a;a=b;b=t; 就交换好了
追问
呃,抱歉,假如要调用函数解决这个问题怎么做?
char am(P[2][3],int m,int n)

{
char t;
t=P[0][1];
P[0][1]=P[1][1];
P[1][1]=t;
}
这样对不对啊?
追答
调用的话要用指针,不然没用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式