内容发布更新时间 : 2025/5/21 2:32:30星期一 下面是文章的全部内容请认真阅读。
C.mu=A.mu;C.nu=A.nu;C.tu=0; pa=1;pb=1;pc=1;
for(x=1;x<=A.mu;x++) //对矩阵的每一行进行加法 {
while(A.data[pa].i
while(A.data[pa].i==x&&B.data[pb].i==x)//行列值都相等的元素 {
if(A.data[pa].j==B.data[pb].j) {
ce=A.data[pa].e+B.data[pb].e; if(ce) //和不为0 {
C.data[pc].i=x;
C.data[pc].j=A.data[pa].j; C.data[pc].e=ce; pa++;pb++;pc++; } }//if
else if(A.data[pa].j>B.data[pb].j) {
C.data[pc].i=x;
C.data[pc].j=B.data[pb].j; C.data[pc].e=B.data[pb].e; pb++;pc++; } else {
C.data[pc].i=x;
C.data[pc].j=A.data[pa].j; C.data[pc].e=A.data[pa].e pa++;pc++; }
}//while
while(A.data[pa]==x) //插入A 中剩余的元素(第x 行) {
C.data[pc].i=x;
C.data[pc].j=A.data[pa].j; C.data[pc].e=A.data[pa].e pa++;pc++; }
while(B.data[pb]==x) //插入B 中剩余的元素(第x 行) {
C.data[pc].i=x;
C.data[pc].j=B.data[pb].j; C.data[pc].e=B.data[pb].e; pb++;pc++; } }//for C.tu=pc;
}//TSMatrix_Add 实习题
若矩阵A m×n中的某个元素a ij 是第i行中的最小值,同时又是第j列中的最大值,则称此元素为该矩阵中的一个马鞍点。假设以二维数组存储矩阵,试编写算法求出矩阵中的所有马鞍点。
void Get_Saddle(int A[m][n])//求矩阵A 中的马鞍点 {
for(i=0;i
for(min=A[i][0],j=0;j
if(A[i][j]
if(A[i][j]==min) //判断这个(些)最小值是否鞍点 {
for(flag=1,k=0;k