c语言 交换二维数组最大值最小值的行数位置,列数不改变,例如最大值a[2][1]最小值a[3][2]交换后最大值a[3][1],最小值a[2][2]。
列数不一样怎么交换行?
#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("请输入N(N<=30):");
int t[30][30]= {0};
int N,i,j,k,sum=0;
scanf("%d",&N);
printf("原数组:\n");
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
t[i][j]=rand()%1000;
printf("%4d",t[i][j]);
}
printf("\n");
}
int min=t[0][0], max=t[0][0];
int p1=0,p2=0,p3=0,p4=0;
for(i=0; i<N; i++)
for(j=0; j<N; j++)
{
if(max<t[i][j])
{
max=t[i][j];
p1=i;p2=j;
}
if(min>t[i][j])
{
min=t[i][j];
p3=i;p4=j;
}
}
printf("最大值t[%d][%d]:%d 最小值t[%d][%d]:%d\n",p1,p2,max,p3,p4,min);
int tem=t[p1][p2];
t[p1][p2]=t[p3][p4];
t[p3][p4]=tem;
printf("交换二最大值最小值的行数位置后:\n");
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
printf("%4d",t[i][j]);
}
printf("\n");
}
return 0;
}