给定一个m×n的数值矩阵A,如果矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个方法计算出m*n的矩阵A的所有马鞍点。

给定一个m×n的数值矩阵A,如果矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个方法计算出m*n的矩阵A的所有马鞍点。


相关考题:

在窗体上画2个命令按钮,名称分别为Command1、command2,并编写如下程序Const n=5,m=4Dim a(m,n)Private Sub Command1_Click()K=1For i=1 To mFor j=1 To na(i,j)=kk=k+1Next jNext iPrivate Sub Command2_Click()Summ=0For i=1 To mFor j=1 To nIf i=1 Or i=m ThenSumm=summ+a(i,j)ElseIf j=I Or j=n ThenSumm=summ+a(i,j)End IfEnd IfNext jNext iPrint summEnd Sub过程Command1_Click()的作用是二维数组a 中存放1个 m行n列的矩阵;过程Command2_Click()的作用是( )。A.计算矩阵外围一圈元素的累加和B.计算矩阵除外一圈以外的所有元素的累加和C.计算矩阵第1列和最后一列元素的累加和D.计算矩阵第1行和最后一行元素的累加和

关于主对角线(从左上角到右下角)对称的矩阵为对称矩阵;如果一个矩阵中的各个元素取值为0或1,那么该矩阵为01矩阵,求大小为N*N的01对称矩阵的个数?()A.power(2,n);B.power(2,n*n/2);C.power(2,(n*n+n)/2);D.power(2,(n*n-n)/2);

在窗体上画两个命令按钮,名称分别为Command1、Command2,并编写如下程序 Const n=5,m=4 Dim a(m,n) Private Sub Command1_Click() k=1 For i=1 To m Forj=1 To n a(i,j)=k k=k+1 Next j Next i End Sub Private Sub Command2_Click() summ=0 For i=1 Tom For j=1 To n If i=1 Or i=m Then summ=summ+a(i,j) Else If j=1 Or j=n Then summ=summ+a(i,j) End If End If Next j Next i Print summ End Sub 过程Command1 Click()的作用是在二锥数组a中存放—个m行n列的矩阵;过程Command2 Click()的作用是______。A.计算矩阵外围一圈元素的累加和B.计算矩外围一圈以外的所有元素的累加和C.计算矩阵第1列和最后—列元素的累加和D.计算矩阵第1行和最后—行元素的累加和

设一个包含N个顶点、E条边的简单有向图采用邻接矩阵存储结构(矩阵元素A[i][j]等于1/0分别表示顶点i与顶点j之间有/无弧),则该矩阵的元素数目为(58),其中非零元素数目为(59)。A.E2B.N2C.N2-E2D.N22+E2

已知有一维数组A[0...m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系______可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。A.i=k/n,j=k%mB.i=k/m,j=k%mC.i=k/n,j=k%nD.i=k/m,j=k%n

阅读下列函数说明和C函数,回答问题1~2,将解答填入栏内。[说明]若矩阵Am×n中存在某个元素aij满足:aij…是第i行中最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。下面程序的功能是输出A中所有鞍点,其中参数A使用二维数组表示,m和n分别是矩阵A的行列数。[程序]void saddle (int A[ ] [ ], int m, int n){ int i,j,min;for (i=0;i <m;i + + ){ min: (1);for (j=1; j<n; j+ +)if(A[i][j]<min) (2);for (j=0; j<n; j+ +)if ((3)){ p=0;while (p<m(4))p+ +;if (p > = m)printf ("%d,%d,%d\n",i,j,min);}}}[问题1] 将函数代码中的(1)~(4)处补充完整[问题2]在上述代码的执行过程中,若A为矩阵,则调用saddle(A,3,3)后输出是(5)。

已知一个无向图的邻接矩阵表示,计算第i个顶点的度的方法是______。 A、计算邻接矩阵中第i行的元素之和B、计算邻接矩阵中第i列的元素之和C、计算邻接矩阵中第i行的非零元个数D、计算邻接矩阵中第i列的非零元个数

阅读下列函数说明和C代码,填入(n)处。[说明]以下C语言程序实现了生成从里到外是连续的自然数排列的回旋矩阵,矩阵形式如下:7 6 5 168 1 4 159 2 3 1410 11 12 13程序的变量说明如下:x1:矩阵上边界;x2:矩阵下边界;y1:矩阵左边界;y2:矩阵右边界;s:数组元素升降标记,s等于1为升,s等于-1为降;a[]:存放矩阵元素的数组。仔细阅读C语言程序源码,将(n)处的语句补充完整。(注:每处仅一个语句)[C程序]include<stdio.h>void main ( ){const int N=20;int i=0,j=0,a[N][N],n;int m,x1,x2,y1,y2,s;while (1){Printf ("\ninput matrix row N( N>=2): ");scanf ("%d",n);printf ("\n");if (n>=2)break;}m=n*n;x1=0; y1=0; x2=n; y2=n;if(n%2==0){j=n-1; y2=n-1; s=1;}else{i=n-1; y1=1; s=-1; }while (1){if (s==1){for (i; i<x2; i++) a[i][j]=m--;i--;j--;(1)for (j;j>=y1;j--) a[i][j]=m--;j++;i--;y1++;(2)}else{for (i;i>=x1;i--)a[i][j]=m--;i++;j++;(3)for (j;j<y2;j++)(4)(5)i++;(6)S=i;}if (m<1) break;}for (i=O;i<n; i++){for (j=O;j<n;j++)printf ("%6d",a[i][j]);printf ("\n");}printf ("\n");}

将一个n阶三对角矩阵A的三条对角线上的元素按行压缩存放于一个一维数组B中, A[0][0]存放于B[0]中。对于任意给定数组元素A[i][j],它应是数组A中第______行的元素。

●设一个包含N 个顶点、E 条边的简单无向图采用邻接矩阵存储结构(矩阵元素 A[i][j]等于1/0 分别表示顶点i与顶点 j 之间有/无边),则该矩阵中的非零元素数目为 (60)。(60)A.NB.EC.2ED.N+E

● 设一个包含N个顶点、 E条边的简单有向图采用邻接矩阵存储结构 (矩阵元素A[i][j]等于1/0分别表示顶点i与顶点j之间有/无弧),则该矩阵的元素数目为 (60) ,其中非零元素数目为 (61) 。

下列程序的功能是( )。 main() { static int s[3][3]={1,2,3,4,5,6,7,8,9,),m,n; for(m=0;m<3;m++) { for(n=0;n<=m;n++) printf("%d",s[m][n]);printf("\n'); } }A.输出3×3矩阵的下三角的元素B.输出3×3矩阵的上三角的元素C.输出3×3矩阵的对角线上的元素D.输出3×3矩阵的元素

●设下三角矩阵(上三角部分的元素值都为 0)A[0..n,0..n]如下所示,将该三角矩阵的所有非零元素(即行下标不小于列下标的元素)按行优先压缩存储在容量足够大的数组M[ ]中(下标从1 开始),则元素 A[I,j](O≤i≤n,j≤i)存储在数组M 的 (57) 中。

已知有一维数组A(0..m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系(4)可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。A.i=k/n,j=k%mB.i=k/m,j=K%mC.i=k/n,j=k%nD.i=k/m,j=k%n

在窗体上画2个命令按钮,名称分别为Command1、Command2,然后编写下列事件过程。 Const n=5.m=4 Dim a(m,n) Private Sub+Command1 Click( ) k=1 For i=1 To m For j=1 To n a(i,j)=k k=k+1 Next j Next i End Sub Private Sub Command2 Click( ) summ=0 For i=1 To m For j=1 To n If i=1 Or i=m Then summ=summ+a(i,j) Else If j=1 Or j=n Then summ=summ+a(i,j) End If End If Next j Next i Print summ End Sub 过程Command1_Click( )的作用是在二维数组a中存放1个m行n列的矩阵;过程Command2 Click( )的作用是( )。A.计算矩阵外围一圈元素的累加和B.计算矩阵除外围一圈以外的所有元素的累加和C.计算矩阵第1列和最后一列元素的累加和D.计算矩阵第1行和最后一行元素的累加和

阅读下列说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左到右是递增的,每列元素从上到下是递增的。以下流程图旨在该矩阵中需找与给定整数X相等的数。如果找不到则输出false;只要找到一个(可能有多个)就输出True以及该元素的下标i和j(注意数组元素的下标从1开始)。 例如,在如下矩阵中查找整数8,则输出伟:True,4,1 2 4 6 9 4 5 9 10 6 7 10 12 8 9 11 13 流程图中采用的算法如下:从矩阵的右上角元素开始,按照一定的路线逐个取元素与给定整数X进行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等的数或超出矩阵范围(找不到)。【流程图】【问题】该算法的时间复杂数是() 供选择答案:A.O(1) B.O(m+n) C.O(m*n) D,O(m+n)

设有一个m行n列的矩阵存储在二维数组A[1..M,1..n]中,将数组元素按行排列,对于A[i,j](1im,ljn),排列在其前面的元素个数为( )。A.i*(n-1)+jB.(i-1)*n+J-1C.i*(m-l)+jD.(i-1)*m+J-1

以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:3 0 0 32 5 7 31 0 4 2则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(int m,int n,int arr[]){ int i,j,sum=0;for(i=0;ifor(j=0;jN;J++)sum=sum+ (7) ;for(j=0;jfor(i=1; (8) ;i++)sum=sum+arr[i*n+j];return(sum);}

试题二(共15分)阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】如果矩阵A中的元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。【C函数】Int findSaddle(int a[][N],int M),{ /*a表示M行N列矩阵,N是宏定义符号常量量*/int row,column,i,k;int minElem;int count=0;/*count用于记录矩阵中马鞍点的个数*/for( row = 0;row (1) ;row++) {/*minElem用于表示第row行的最小元素值,其初值设为该行第0列的元素值*/(2) ;for( column = 1;column (3) ;column++)if( minElem a[row][column]) {minElem = a[row][column];}for(k=0;kN;k++)if(a[row][k]==minElem){/术对第row行的每个最小元素,判断其是否为所在列的最大元素*/for(i=0;i M;i++)if( (4) minElem) break;if(i=(5) ){printf("(%d,%d):%d\n",row,k,minElem);/*输出马鞍点*/count++;}/*if*/}/*if*/}/*for*/return count,}/*findSaddle*/

试题一(共 20 分)阅读下列说明和图,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。【说明】设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左至右是递增的,每列元素从上到下是递增的。以下流程图旨在该矩阵中需找与给定整数 X 相等的数。如果找不到则输出“false”;只要找到一个(可能有多个)就输出“True”以及该元素的下标 i 和 j(注意数组元素的下标从 1 开始)。例如,在如下矩阵中查找整数 8,则输出伟:True,4,12 4 6 94 5 9 106 7 10 128 9 11 13流程图中采用的算法如下:从矩阵的右上角元素开始,按照一定的路线逐个取元素与给定整数 X 进行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等的数或超出矩阵范围(找不到)。【流程图】【问题】该算法的时间复杂数是()供选择答案:A.O(1) B.O(m+n) C.(m*n) D,O(m2+n2)

设有一个m行n列的矩阵存储在二维数组A[1..M,1..n]中,将数组元素按行排列,对于A[i,j](1≤i≤m,l≤j≤n),排列在其前面的元素个数为( ).A.i*(n-1)+jB.(i-1)*n+J-1C.i*(m-l)+jD.(i-1)*m+J-1

设一个包含N个顶点、E条边的简单无向图采用邻接矩阵存储结构(矩阵元素A[i][j]等于I/O分别表示顶点i与顶点j之间有/无边),则该矩阵中的非零元素数目为( )。A.NB.EC.2ED.N+E

设一个包含n个顶点、e条弧的简单有向图采用邻接矩阵存储结构(即矩阵元素A[i][j]团等于1或0,分别表示顶点i与顶点j之间有弧或无弧),该矩阵购非零元素数目为( )。A.eB.2eC.n-eD.n+e

若一个n阶矩阵A中的元素满足:Aij=Aji(0=I,j=n-1)则称A为()矩阵;若主对角线上方(或下方)的所有元素均为零时,称该矩阵为()。

单选题设有一个M*N的矩阵已经存放在一个M行N列的数组x中,且有以下程序段:sum=0;for(i=0;iA矩阵两条对角线元素之和B矩阵所有不靠边元素之和C矩阵所有元素之和D矩阵所有靠边元素之和

问答题给定一个m×n的数值矩阵A,如果矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个方法计算出m*n的矩阵A的所有马鞍点。

填空题若一个n阶矩阵A中的元素满足:Aij=Aji(0=I,j=n-1)则称A为()矩阵;若主对角线上方(或下方)的所有元素均为零时,称该矩阵为()。