第2个回答 2011-03-01
#include <stdio.h>
#include <stdlib.h>//使用malloc用的库函数
typedef int (*P)[2];//定义类型
P creat(int (*p3)[2])//返回类型为数组指针
{
int (*p4)[2];
//int b[2][2]={0};
int i,j;
//p4=b;
//申请内存,这样在函数结束后,能保存数值
p4=(int(*)[2])malloc(sizeof(int*)*2);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
*(*(p4+i)+j)=*(*(p3+i)+j);//如果就一条执行语句,2个for循环不用{}
return p4;
}
void main()
{ int a[2][2]={{1,2},{3,4}};
int (*p1)[2];
int (*p2)[2];
int i,j;
p1=a;
p2=creat(p1);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%d ",*(*(p2+i)+j));
}
第4个回答 2011-03-05
int main()
{
int i,j,a[3][5],b[5][3];
//..
for(i=0;i<3;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
//..
for(i=0;i<5;i++)
for(j=0;j<3;j++)
b[i][j]=a[j][i];
//..
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
printf("%d ",b[i][j]);
printf("\n");
}
return 0;
}