#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int row,line,i,j;
int **p,max,flag;
int r,k,maxj;
printf("请问需要创建几行几列的数组\n");
scanf("%d,%d",&row,&line);
printf("创建%d行%d列数组\n",row,line);
p=(int **)malloc( sizeof(int *)*row );
for(i=0;i<line;i++)
p[i]=(int *)malloc( sizeof(int)*line);
for(i=0;i<row;i++)
for(j=0;j<line;j++)
scanf("%d",&p[i][j]);
printf("\n");
for(i=0;i<row;i++)
{
for(j=0;j<line;j++)
printf("%d ",p[i][j]);
printf("\n");
}
for(r=0;r<row;r++) //行循环
{
max=p[r][0];
for(j=0;j<line;j++)
if(max<p[r][j]) //找出每行的最大值
{
max=p[r][j];
maxj=j; //保存列坐标
}
flag=1; //假设有鞍点
for(k=0;k<row;k++) //在列中寻找最小值
if(max>p[k][maxj]) //只要max大于列中任意一个,则max不是最小值
flag=0; //标记0无鞍点
if(flag)
{
printf("p[%d][%d]=%d\n",r,maxj,max);
break; //结束循环体
}
}
if(!flag)
printf("程序无鞍点\n");
for(r=0;r<row;r++) //务必记住释放内存
free(p[r]);
free(p);
system("pause");
return 0;
}
二维数组中寻找鞍点
最新推荐文章于 2023-11-26 14:33:58 发布