问题描述:
求给定的n x n矩阵的转置矩阵,并计算对角线元素之和。
源代码:
#include<stdio.h>
#define N 4
int main()
{
int a[N][N], (*p)[N];
int i,j,t,sum=0;
#define N 4
int main()
{
int a[N][N], (*p)[N];
int i,j,t,sum=0;
printf("Input numbers:\n");
for(i = 0;i<N;i++)
{
printf("\n");
for(j = 0;j<N;j++)
scanf("%d",&a[i][j]);
}
p = a;
for(i = 0;i<N;i++)
{
sum = sum + *(*(p+i)+i);
for(j = i+1;j<N;j++) /* 实际对对角线的上半三角进行转换 */
{
t = *(*(p+i)+j);
*(*(p+i)+j) = *(*(p+j)+i);
*(*(p+j)+i) = t;
}
}
for(i = 0;i<N;i++)
{
printf("\n");
for(j = 0;j<N;j++)
scanf("%d",&a[i][j]);
}
p = a;
for(i = 0;i<N;i++)
{
sum = sum + *(*(p+i)+i);
for(j = i+1;j<N;j++) /* 实际对对角线的上半三角进行转换 */
{
t = *(*(p+i)+j);
*(*(p+i)+j) = *(*(p+j)+i);
*(*(p+j)+i) = t;
}
}
for(i = 0;i<N;i++)
{
printf("\n");
for(j = 0;j<N;j++)
printf("%4d",a[i][j]);
}
printf("\n");
printf("%d\n",sum);
return 0;
{
printf("\n");
for(j = 0;j<N;j++)
printf("%4d",a[i][j]);
}
printf("\n");
printf("%d\n",sum);
return 0;
}