编写程序,通过函数调用方式实现将一个5*5阶矩阵中最大元素放在中心,四个角分别放最小的4个最小元素。代码写好了,但是输出不了,请教。
我想的是在数组元素顺序不打乱的情况下进行值得交换,但是#include <stdio.h>
main()
{
int a[5][5],i,j,k,t,q;
k=0;
t=0;
q=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(a[q][k]<a[i][j])
q=i;
k=j;
}
}
t=a[2][2];
a[2][2]=a[q][k];
a[q][k]=t;
q=0;
k=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(a[q][k]>a[i][j])
q=i;
k=j;
}
}
t=a[0][0];
a[0][0]=a[q][k];
a[q][k]=t;
q=0;
k=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==0&&j==0)
break;
else if(a[q][k]>a[i][j])
q=i;
k=j;
}
}
t=a[0][4];
a[0][4]=a[q][k];
a[q][k]=t;
q=0;
k=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if((i==0&&j==0)||(i==0&&j==4))
break;
else if(a[q][k]>a[i][j])
q=i;
k=j;
}
}
t=a[4][0];
a[4][0]=a[q][k];
a[q][k]=t;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if((i==0&&j==0)||(i==0&&j==4)||(i==4&&j==0))
break;
else if(a[q][k]>a[i][j])
q=i;
k=j;
}
}
t=a[4][4];
a[4][4]=a[q][k];
a[q][k]=t;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)\
{
if((j+1)==5)
printf("\n");
break;
printf("%2d",a[i][j]);
}
}
getchar();
}写出来以后没有错误,就是不能输出值,、