本文目錄一覽:
c語言舉一個沒有鞍點的例子
continue是用於節約時間的。
當發現當前的max的值比該列某個值大(於是可以確定這個值不是該列最小,即不可能是鞍點),就不必再檢查該列的其他值了。
當然,檢查了也無所謂,反正已經變成0的flag是不可能恢復成1的,所以是無效操作。
C語言鞍點問題
該程序的代碼如下。是很具有人性化的設計方案,希望對你有所幫助。
/*找一個二維數組中的鞍點,即該位置上的元素是該行中最大,在該列上最小,也可能沒有鞍點。*/
#include stdio.h
#define N 10 /*查找鞍點*/
#define M 10
void main()
{
int i,j,k,m,n,flag1,flag2,a[M][N],max,maxj;
printf(“輸入行數n:”);
scanf(“%d”,n);
printf(“輸入列數m:”);
scanf(“%d”,m);
for(i=0;in;i++)
{
printf(“請輸入第%d行:”,i+1);
for(j=0;jm;j++)
scanf(“%d”,a[i][j]);
}
printf(“\n”);
for(i=0;in;i++)
{
for(j=0;jm;j++)
printf(“%5d”,a[i][j]);
printf(“\n”);
}
flag2=0;
for(i=0;in;i++)
{
max=a[i][0];
for(j=0;jm;j++)
if(a[i][j]max)
{
max=a[i][j];
maxj=j;
}
for(k=0,flag1=1;knflag1;k++)
if(maxa[k][maxj])
flag1=0;
if(flag1)
{
printf(“\n第%d行,第%d列的%d是鞍點\n”,i+1,maxj+1,max);
flag2=1;
}
}
if(!flag2)
printf(“\n矩陣中無鞍點!\n”);
}
此外譚浩強版的C程序設計答案可以從下面網址下載
如果該回答你很滿意,別忘記加分哦。呵呵。
C語言中關於二維數組的「鞍點」問題
#include stdio.h
int main()
{
int a[3][3]={7,8,9,4,5,6,1,2,3};
int b[10];
int i,j,hmax,lmin,*p_hmax,*p_lmin;
p_hmax=hmax;
p_lmin=lmin; /*i行 j列 hmax行最大 lmin列最小*/
for(i=0;i=2;i++) /*求出每行的最大數*/
{
hmax=a[i][0];
for(j=0;j=2;j++)
{
if(hmaxa[i][j])
{
hmax=a[i][j];
}
}
b[i]=*p_hmax;
}
for(j=0;j=2;j++) /*求出每列的最小數*/
{
lmin=a[0][j];
for(i=0;i=2;i++)
{
if(lmina[i][j])
{
lmin=a[i][j];
}
}
b[j+3]=*p_lmin;
}
for(i=0;i=2;i++) /*判斷每行的最大數和每列的最小數是否相等*/
if(b[i]==b[i+3])
printf(“%d\n”,b[i]);
else
printf(“沒有鞍點\n”);
return 0;
}
你試試吧!!我在vs上調試的
用c語言程序編寫 找出一個二維數組中的鞍點,即該位置上的元素在該行上最大,在該列上最小,也可能沒有鞍
#define N 10
#define M 10
void main( )
{ int i, j, k, m, n, flag1, flag2, a[N][M], max, maxj;
printf(“輸入行列數n,m:”);
scanf(“%d%d”, n,m);
for (i =0; i n; i ++)
for(j=0;jm;j++)
scanf(“%d”,a[i][j]);
flag2=0;
for(i =0; i n; i ++)
{ max=a[i][0];
for(j=0;jm;j++)
if(a[i][j]max)
{ max=a[i][j];
maxj=j;
}
for(k=0,flag1=1;knflag1;k++)
if(maxa[k][maxj])
{ printf(“第%d 行,第%d 列的%d 是鞍點\n”, i,maxj,max);
flag2=1;}
if(flag1) flag1=0;
}
if(!flag2) printf(” 矩陣中無鞍點!\n”);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/257291.html