一道指针的题,求学一下
输入一个数组a[5][5], 最中间的位置存最大数,其余四个角分别放从小到大的最小的四个数?#include<stdio.h>
void main()
{
void tz_(int (*p)[5], int n);
int a[5][5], i, j;
printf("please input the array:\n");
for (i = 0; i < 5; i ++)
{
for (j = 0; j < 5; j ++)
{
scanf("%d", &a[i][j]);
}
}
tz_(a[0],5); ////这个地方始终被报错,真的搞不懂咯,怎么咯?
printf("please input the new array:\n");
for (i = 0; i < 5; i ++)
{
for (j = 0; j < 5; j ++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
}
void tz_(int (*p)[5], int n)
{
int i, j, t;
for (i = 0; i < n; i ++)
{
for (j = 0; j < n; j ++)
{
if (p[2][2] < p[i][j])
{
t = p[i][j];
p[i][j] = p[2][2];
p[2][2] = t;
}
}
}
for (i = 0; i < n; i ++)
{
for (j = 0; j < n; j++)
{
if (p[0][0] > p[i][j])
{
t = p[i][j];
p[i][j] = p[0][0];
p[0][0] = t;
}
}
}
for (i = 0 ;i < n; i ++)
{
for (j = 0; j < n; j ++)
{
if((p[0][4]>p[i][j]) && (i!=0&&j!=0))
{
t = p[i][j];
p[i][j] = p[0][4];
p[0][4] = t;
}
}
}
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if ((p[4][0]>p[i][j]) &&(i!=0&&j!0) &&(i!=0&&j!=4))
{
t = p[i][j];
p[i][j] = p[4][0];
p[4][0] = t;
}
}
}
for (i = 0; i < n; i ++)
{
for (j = 0; j < n; j ++)
{
if ((p[4][4]>p[i][j]) &&(i!=0&&j!=0)&&(i!=0&&j!=4)&&(i!=4&&j!=0))
{
t = p[i][j];
p[i][j] = p[4][4];
p[4][4] = t;
}
}
}
}