c数组问题
李万鹏 2009-10-28 02:14:20 将一个5*5的矩阵中最大的元素放在中心,四个角分别放4个最小的元素(顺序从左到右,从上到下一次从小到大存放);
下面是我的程序,请问哪里出错了
#include <stdio.h>
int main(){
int a[5][5],i,j,t,m = 0,n = 0,b[25],k = 0,h;
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[i][j] > a[m][n]){
m = i;
n = j;
}
t = a[2][2];
a[2][2] = a[m][n];
a[m][n] = t;
for(i = 0;i < 5;i++)
for(j = 0;j < 5;j++)
b[k++] = a[i][j];
for(i = 0;i < 24;i++){
h = i;
for(j = i + 1;j < 25;j++)
if(b[h] > b[j])
h = j;
t = b[i];
b[i] = b[h];
b[h] = t;
}
for(i = 0;i < 4;i++)
printf("%d\001 ",b[i]);
k = 0,m = 0,n = 0,t = 0;
for(i = 0;i < 5;i++)
for(j = 0;j < 5;j++)
if(a[i][j] == b[0]){
printf("%d",a[i][j]);
t = a[i][j];
a[i][j] = a[m][n];
a[m][n] = t;
if(k - 1 == 1){
m = 0;
n = 4;
}
else
if(k - 1 == 2){
m = 4;
n = 0;
}
else
if(k - 1 == 3){
m = 4;
n = 4;
}
}
for(i = 0;i < 5;i++){
for(j = 0;j < 5;j++)
printf("%d ",a[i][j]);
printf("\n");
}
getch();
return 0;
}