c语言课后习题
#include<stdio.h>
void main()
{
void f(int (*q)[4]);
int a[3][4];
int (*p)[4];
int i,j;
p=a;
printf("输入12个数:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",(*(p+i)+j));
f(p);
}
void f(int (*q)[4])
{
int i,j,k;
for(k=0,i=0;i<4;i++)
{
for(j=0;j<3;j++)
if(*(*(q+i)+k)<*(*(q+i)+j+1))
k=j+1;
if(i==0)
if((*(*(q+i)+k)>*(*(q+i+3)+k))&&(*(*(q+i)+k)>*(*(q+i+2)+k))&&(*(*(q+i)+k)>(*(*(q+i+1)+k))))
{
printf("鞍点为:\n%d\n",*(*(q+i)+k));
}
if(i==1)
if((*(*(q+i)+k)>*(*(q+i+1)+k))&&(*(*(q+i)+k)>*(*(q+i)+k+2))&&(*(*(q+i)+k)>(*(*(q+i-1)+k))))
{
printf("鞍点为:\n%d\n",*(*(q+i)+k));
}
if(i==2)
if((*(*(q+2)+k)>*(*(q+1)+k))&&(*(*(q+2)+k)>*(*(q+0)+k))&&(*(*(q+2)+k)>(*(*(q+3)+k))))
{
printf("鞍点为:\n%d\n",*(*(q+i)+k));
}
if(i==3)
if((*(*(q+3)+k)>*(*(q+2)+k))&&(*(*(q+3)+k)>*(*(q+1)+k))&&(*(*(q+3)+k)>(*(*(q+0)+k))))
{
printf("鞍点为:\n%d\n",*(*(q+i)+k));
}
}
}