#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;
}
二維數組中尋找鞍點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.