有个5X5矩阵
1.将矩阵的行列倒置(将5x5的矩阵进行转置)
2.找出矩阵的最大值和最小值所在的行和列
3.将数组中重复数值用0替换。
#include <stdio.h>
int main(){
int a[5][5]={{5,4,3,2,1},
{10,9,8,7,6},
{5,8,2,3,4},
{3,3,2,5,8},
{4,3,8,9,10}};
int b[5][5],i,j;
printf("原始数据为array a:\n");
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("矩阵转置后为array b:\n");
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
int max,max_row=0,max_colum=0,min=a[0][0],min_row=0,min_colum=0;
max=a[0][0];
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
max_row=i;
max_colum=j;
}
if(a[i][j]<min)
{
min=a[i][j];
min_row=i;
min_colum=j;
}
}
}
printf("矩阵中的max=%d\n对应的行:max_row=%d\n对应的列:max_colum=%d\n",max,max_row,max_colum);
printf("矩阵中的min=%d\n对应的行:min_row=%d\n对应的列:min_colum=%d\n",min,min_row,min_colum);
int c[25];
int flag,*p=c;
printf("替换后的数组为array c:\n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
*p++=b[i][j];
for(i=0;i<25;i++){
flag=0;{
for(j=i+1;j<25;j++)
if(c[i]==c[j]){
c[j]=0;
flag=1;
}
if(flag==1)
c[i]=0;
}
}
for(i=0;i<25;i++){
printf("%-9d",c[i]);
if((i+1)%5==0)
printf("\n");
}
return 0;
}
|