关于求鞍点的问题!谢谢指教!:)
/*找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点*/
#define m 3
#define n 3
main()
{
int andian(int b[m][n]);
int a[m][n],i,j,x;
printf("请输入一个三行三列的数组\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
x=andian(a[m][n]);
printf("%d\n",x);
}
int andian(int b[m][n])
{
int a,h,i,j,max_line,dian=0;
int c[m][n];
while(i<m)
{ i=0;
max_line=c[i][0];
for(a=0;a<n;a++)
{
if(c[i][a]>max_line)
{
max_line=c[i][a];
for(j=0;j<m;j++)
if(c[j][a]<c[i][a])
dian=c[j][a];
return(dian);
}
}
i++;
}
} /*找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点*/
#define m 3
#define n 3
main()
{
int andian(int b[m][n]);
int a[m][n],i,j,x;
printf("请输入一个三行三列的数组\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
x=andian(a[m][n]);
printf("%d\n",x);
}
int andian(int b[m][n])
{
int a,h,i,j,max_line,dian=0;
int c[m][n];
while(i<m)
{ i=0;
max_line=c[i][0];
for(a=0;a<n;a++)
{
if(c[i][a]>max_line)
{
max_line=c[i][a];
for(j=0;j<m;j++)
if(c[j][a]<c[i][a])
dian=c[j][a];
return(dian);
}
}
i++;
}
}
我的编译结果:
fydream@linux:~/源代码/unit 7> gcc -o dreamdead 78shiyan.c
78shiyan.c: In function `main':
78shiyan.c:12: warning: passing arg 1 of `andian' makes pointer from integer without a cast
fydream@linux:~/源代码/unit 7> ./dreamdead
请输入一个三行三列的数组
1 2 3 4 5 6 7 8 9
1073836960
fydream@linux:~/源代码/unit 7>
清指教!我实在是想不出怎么定义这个函数了!严重的感谢!:)