阅读下列函数说明和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)。
第1题:
所谓的n阶下三角矩阵A是指当i<j时(i为元素的行标,j 为元素的列标)元素aij为0或常数C .()
第2题:
所谓的下三角矩阵An╳n,是指当i<j时(i为元素的行标,j 为元素的列标)元素aij为0或常数C .()
第3题:
编写一个程序合理使用函数,输入m(0<m<10),n(2<n<10),随机生成m个有鞍点的n*n矩阵(每个随机数为包含在0~9之间的整数),输出这些矩阵(鞍点用红色输出)。 提示:矩阵鞍点是指矩阵中的某一点,既是行中的最大值,又是列中的最小值。 矩阵中不一定存在鞍点,也可能有多个鞍点。随机数函数参见《计算机基础与计算思维》6.3.5小节。
第4题:
【5-1-3】设A是一个n*n的对称矩阵,将A的对角线及对角线上方的元素以列优先(以列为主序)的方式存放在一维数组B[n(n+1)/2]中,则矩阵中任一元素aij(0<=i,j<n,且i<=j)在B中的位置为()。
A.j(j+1)/2+i
B.j(j-1)/2+i-1
C.i(i+1)/2+j
D.j(i-1)/2+j-1
第5题:
对称矩阵是一个n阶方阵,其元素满足:aij==aji (0≤i,j≤n-1)。