实例二十:数组指针的使用
问题描述:
利用数组指针求给定n*n矩阵的转置矩阵,并计算对角线元素之和。
#include <stdio.h>
#define N 4
int main(void)
{
int a[N][N],(*p)[N];
int i, j, t, s=0;
printf("input a:\n");
for(i=0;i<N;i++)
{
printf("Input the %dth row:\n",i+1);
for(j=i+1;j<N;j++)
scanf("%d",&a[i][j]);
}
p = a;
for(i=0;i<N;i++)
{
s+=*(*(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++)
{
for(j=0;j<N;j++)
printf("%4d",*(*(p+i)+j));
printf("\n");
}
printf("s=%d\n",s);
return 0;
}
算法思路:
其实我表示学艺不精,看不大懂
程序心得:
- 好好学习!!!