譬如,定义两个int型数组a[2][3]={1,2,3,4,5,6},b[3][2]
输出a应该是这样的:
1,2,3
4,5,6
然后将a里面的元素放进b里面,要求输出是这样的:
1,2
3,4
5,6
而书本里面那个程序跟这个有点出入,我自己想了想,能力有限啊,哪位大侠能指点指点?谢谢
不好意思.今天脑袋有点迷糊..没注意看
# include <stdio.h>
main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2];
int *p,*q;
int i,j;
p=a;q=b;
for (i=0;i<6;i++)
*(q+i)=*(p+i);
for (i=0;i<3;i++)
{ for (j=0;j<2;j++)
printf("%d ",b[i][j]);
printf("\n");
}
getch();
}
如上..这下没问题了!
唉,我也晕了,居然那么简单都没想到
谢谢SunShining啊
main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2];
int c[2*3],i,j,k=0;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
c[k++]=a[i][j];
k=0;
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
{b[i][j]=c[k++];
printf("%3d",b[i][j]);
}
printf("\n");
}
就这样也是可以的,将前一个数组只当是一种数值提供就可以了。
哈哈,这个方法不错,赞~
不好意思.今天脑袋有点迷糊..没注意看
# include <stdio.h>
main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2];
int *p,*q;
int i,j;
p=a;q=b; //应该是p=a[0];q=b[0];
for (i=0;i<6;i++)
*(q+i)=*(p+i);
for (i=0;i<3;i++)
{ for (j=0;j<2;j++)
printf("%d ",b[i][j]);
printf("\n");
}
getch();
}
如上..这下没问题了!
现在才发现你的这个程序也是有问题的
[此贴子已经被作者于2006-4-3 2:20:13编辑过]