读书人

为何这段程序通不过求教

发布时间: 2013-09-07 14:12:44 作者: rapoo

为什么这段程序通不过,求教?
#include"stdio.h"
int b[3][3];

int *move(int *matrix)
{
int *p=b[0];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
*(*(p+i)+j)=*(*(matrix+j)+i);
return p
}

void main()
{
int *p,a[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
p=move(a[0]);
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
printf("%4d",*(*(p+i)+j));
}
printf("\n");
}
}

[解决办法]
帮你修改了下代码,再看看吧!基础不怎么好,搞本书看看先


#include <stdio.h>

int b[3][3];

int *move(int *matrix)
{
int *p = b[0];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
*((p+i*3)+j)=*((matrix+(j*3))+i);
return p;
}

int main()
{
int *p = NULL;
int a[3][3] = {0};
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
p=move( a[0] );
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
printf("%4d",*((p+i*3)+j));
}
printf("\n");
}
}

------解决方案--------------------


基础错误太多,建议先看看《C Primer Plus》。

引用:
#include"stdio.h"
int b[3][3];

int *move(int *matrix)
{
int *p=b[0];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
*(*(p+i)+j)=*(*(matrix+j)+i);
return p
}

void main()
{
int *p,a[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
p=move(a[0]);
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
printf("%4d",*(*(p+i)+j));
}
printf("\n");
}
}

读书人网 >C语言

热点推荐