c语言编程问题

帮我看一下这段程序为啥运行不出来
题目是:利用二级指针访问数组元素,把给定的int型矩阵转置
程序是:
#include"stdio.h"
#define N 3
void main (){
int i,j,a[N][N],b[N][N],**p,**q;
p=a;
q=b;
printf("please input:\n");
for(i=0;i<=N;i++)
for(j=0;j<=N;j++)
scanf("%d",*(*(p+i)+j));
for(i=0;i<=N;i++)
for(j=0;j<=N;j++)
*(*(q+i)+j)=*(*(p+i)+j);
for(i=0;i<=N;i++)
for(j=0;j<=N;j++)
*(*(p+j)+i)=*(*(q+i)+j);
for(i=0;i<=N;i++)
for(j=0;j<=N;j++)
printf("%d",*(*(p+i)+j));
}

第1个回答  2009-04-30
我也是刚学的c 太难咯。上课都没听呀。。回答不了。。。。。
第2个回答  2009-04-30
#include"stdio.h"
#define N 3
void main()
{int i,j,a[N][N],b[N][N],(*p)[N],(*q)[N];
p=a;
q=b;
printf("please input:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",(*(p+i)+j));

for(i=0;i<N;i++)
for(j=0;j<N;j++)
*(*(q+i)+j)=*(*(p+i)+j);

for(i=0;i<N;i++)
for(j=0;j<N;j++)
*(*(p+j)+i)=*(*(q+i)+j);

for(i=0;i<N;i++)
for(j=0;j<N;j++)
printf("%4d ",*(*(p+i)+j));
}
已经正确运行本回答被网友采纳
相似回答