遍历上三角或者下三角

遍历上三角

    for(i = 0; i < n; i++)
        for(j = 0; j < n; j++)
            if(i <= j){         	    /* 只遍历上三角阵 */
              temp = a[i][j]; 	    /* 以下3句交换 a[i][j] 和 a[j][i] */
               a[i][j] = a[j][i];
                a[j][i] = temp; 
            }  

或者

    for(i = 0; i < n; i++)
        for(j = i; j < n; j++)
            				{         	    /* 只遍历上三角阵 */
              temp = a[i][j]; 	    /* 以下3句交换 a[i][j] 和 a[j][i] */
               a[i][j] = a[j][i];
                a[j][i] = temp; 
            }  

只遍历下三角

    for(i = 0; i < n; i++)
        for(j = 0; j < i; j++)
            	{         	    /* 只遍历下三角阵 */
                temp = a[i][j]; 	    /* 以下3句交换 a[i][j] 和 a[j][i] */
                a[i][j] = a[j][i];
                a[j][i] = temp; 
            }  

如果是这样

    for(i = 0; i < n; i++)
        for(j = 0; j < n; j++)
            {         	    
              temp = a[i][j]; 	    /* 以下3句交换 a[i][j] 和 a[j][i] */
               a[i][j] = a[j][i];
                a[j][i] = temp; 
            }  

那么转置两次 与原矩阵相同

发布了42 篇原创文章 · 获赞 13 · 访问量 1928

猜你喜欢

转载自blog.csdn.net/KEVINzzh/article/details/103793480