#include<stdio.h>
#include<malloc.h>
void ShowArr(int **a,int n)//输出数组
{
for(int i=0;i<n;i++)
{
printf("第%d的数据",i+1);
for(int j=0;j<n;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
void Change_Find(int **a,int n)
{
int tmax=-1,tmin=1000;
int line_max=-1,line_min=-1,temp;
for(int i=0;i<n;i++)//查找最大值和最小值
{
for(int j=0;j<n;j++)
{
if(a[i][j]>tmax)
{
tmax=a[i][j];
line_max=i;
}
if(a[i][j]<tmin)
{
tmin=a[i][j];
line_min=i;
}
}
}
printf("最大值所在的行是%d,最小值所在的行是%d\n",line_max,line_min);
for(int k=0;k<n;k++)
{
temp=a[line_max][k];
a[line_max][k]=a[line_min][k];
a[line_min][k]=temp;
}
printf("调换后的数组是:\n");
ShowArr(a,n);
}
int main()
{
int **a;
int n=0,i=0,j;
printf("请输入行数n:");
scanf("%d",&n);
/*下面定义动态
二维数组*/
a=(int **)malloc( n*sizeof(int *));//申请第一列
for(int i=0;i<n;i++)
{
a[i]=(int *)malloc(n*sizeof(int ));//申请行空间
}
//输入二维数组
for(i=0;i<n;i++)
{
printf("请输入第%d行\n",i+1);
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
printf("\n您输入的是:\n");
ShowArr(a,n);
Change_Find(a,n);
fflush(stdin);
getchar();
}