C语言-方阵转置

2020-01-09  本文已影响0人  广陵周惊蛰

问题描述:输入一个正整数n(1<=n<=6),根据下式生成一个nn矩阵,将该矩阵转置(行列互换)后输出。a[i][j]=in+j+1;

源代码:

/*方阵转置*/
#include<stdio.h>
int main(void)
{
    int i,j,n,temp;
    int a[6][6];
    
    /*给二位数组赋值*/
    printf("Enter n:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            a[i][j]=i*n+j+1;  
            
    /*行列互换*/            
    for(i=0;i<n;i++){
        for(j=0;j<n;j++)
            if(i<=j){
                temp=a[i][j]; //只遍历上三角阵 
                a[i][j]=a[j][i];
                a[j][i]=temp;
            }
    }
    
    /*矩阵输出a*/
    for(i=0;i<n;i++){
        for(j=0;j<n;j++)
            printf("%4d",a[i][j]);
        printf("\n");
    }
    
    return 0;
}

运行结果:

转置矩阵

程序心得:

主对角线下标:i==j

上三角下标:i<=j

下三角下标:i>=j

副对角线下标:i+j==N-1

程序参数:

上一篇 下一篇

猜你喜欢

热点阅读