c语言中二维数组如何交换行?
展开全部
可以啊,给你写了个完整的程序,为了比较好理解,就把循环分开写了,实现就是这个意思,如果你想扩展的话可以用宏定义来实现。
#include <stdio.h>
void _swap(int p[4][4], int a, int b);
int main()
{
int a[4][4]={{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7}};
int j=0,i=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}
_swap(a,1,4);
printf("\n\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
void _swap(int p[4][4], int a, int b)//交换二维数组(4*4)的a、b行
{
int aa[4];
int i;
for(i=0;i<4;i++)
aa[i]=p[a-1][i];
for(i=0;i<4;i++)
p[a-1][i]=p[b-1][i];
for(i=0;i<4;i++)
p[b-1][i]=aa[i];
}
#include <stdio.h>
void _swap(int p[4][4], int a, int b);
int main()
{
int a[4][4]={{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7}};
int j=0,i=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}
_swap(a,1,4);
printf("\n\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
void _swap(int p[4][4], int a, int b)//交换二维数组(4*4)的a、b行
{
int aa[4];
int i;
for(i=0;i<4;i++)
aa[i]=p[a-1][i];
for(i=0;i<4;i++)
p[a-1][i]=p[b-1][i];
for(i=0;i<4;i++)
p[b-1][i]=aa[i];
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询