/*
6  输入一个3行4列的二维数组,将其中的最小值输出(包括值及其位置)。
要求,使用两种指针变量来实现,即:
A)    函数int min(int *p,int *x,int *y); 
B)    函数int min1(int (*p)[4],int *x,int *y);
*/
#include<stdio.h>
int min(int *p,int *x,int *y)
{
    int k,i,j;
    k=*p;
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            if(*(*(&p+i)+j)<=k)
            {
                k=*(*(&p+i)+j);
                *x=i+1;
                *y=j+1;
            }            }
    return k;

}
int min1(int (*p)[4],int *x,int *y)
{
    int i,j,l;
    l=**p;
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            if(l>=*(*(p+i)+j))
            {
                l=*(*(p+i)+j);
                *x=i+1;
                *y=j+1;
            }
    return l;
}
void main()
{
    int i,j,s[3][4];
    int *x,*y,a,b;
    x=&a;
    y=&b;
    printf("按行输入数组\n");
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            scanf("%d",&s[i][j]);
    printf("由A法输出,最小值为%d,在第%d行第%d列.\n",min(*s,x,y),a,b);
    printf("由B法输出,最小值为%d,在第%d行第%d列.\n",min1(s,x,y),a,b);
}


不知道哪错了
望指教