當前位置:編程學習大全網 - 編程軟體 - C語言編程:找出壹個二維數組的鞍點 該位置上的元素在該行上最大 在該列上最小。也可能沒有鞍點 輸出no

C語言編程:找出壹個二維數組的鞍點 該位置上的元素在該行上最大 在該列上最小。也可能沒有鞍點 輸出no

/*

在壹個二維數組中找出鞍點(即改行最大該列最小的數)

*/

#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;

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~

我寫的壹個程序,妳對著妳的程序看行不行。

  • 上一篇:txt整蠱代碼
  • 下一篇:如何解決CAD每打開壹個文件都會啟動壹個CAD程序
  • copyright 2024編程學習大全網