主题:求助 二维数组指针返回。。
/*
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);
}
不知道哪错了
望指教
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);
}
不知道哪错了
望指教