矩阵任意两行或两列交换在C语言的程序中如何编写?
#include "stdio.h"
int main()
{
int i,j,m,n,t;
int A[4][5]={{1,2,3,4,5},{6,7,8,9,10,},{11,12,13,14,15},{16,17,18,19,20}};
int B[4][5]={0};
printf("交换前的矩阵为:\n");
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
printf("%5d",A[i][j]);
printf("\n");
}
while(1)
{
printf("请选择行交换还是列交换\n*.按 1 列交换\n*.按 2 行交换\n*.其他任意数退出系统!\n");
scanf("%d",&t);
if(t==1)
{
printf("请输入要交换的两列:\n");
scanf("%d",&m);
scanf("%d",&n);
for(i=0;i<4;i++)
{
B[i][m-1]=A[i][m-1];
A[i][m-1]=A[i][n-1];
A[i][n-1]=B[i][m-1];
}
}
else if(t==2)
{
printf("请输入要交换的两行:");
scanf("%d",&m);
scanf("%d",&n);
for(j=0;j<5;j++)
{
B[m-1][j]=A[m-1][j];
A[m-1][j]=A[n-1][j];
A[n-1][j]=B[m-1][j];
}
}
else
break;
printf("交换后的数组为:\n");
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
printf("%5d",A[i][j]);
printf("\n");
}
}
return 0;
}
点击加载更多评论>>