问题描述:输入一个正整数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
程序参数:
- 输出大小: 150.509765625 KiB
- 编译时间: 0.30s
网友评论