| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1366 人关注过本帖
标题:[求助]请问,数组里面该如何实现元素的调换
只看楼主 加入收藏
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
 问题点数:0 回复次数:13 
[求助]请问,数组里面该如何实现元素的调换
不是书上的那个例子啊
譬如,定义两个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
而书本里面那个程序跟这个有点出入,我自己想了想,能力有限啊,哪位大侠能指点指点?谢谢
搜索更多相关主题的帖子: 元素 调换 
2006-04-02 16:14
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

书上题..

for (i=0;i<2;i++)
for (j=0;j<3;j++)
b[j][i]=a[i][j];

很好理解~!


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-04-02 16:57
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用SunShining在2006-4-2 16:57:00的发言:

书上题..

for (i=0;i<2;i++)
for (j=0;j<3;j++)
b[j][i]=a[i][j];

很好理解~!

希望你能把我的问题看清楚了再回复我,又或者是你自己去运行一次,得到结果了再说吧


好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
2006-04-02 17:08
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

不好意思.今天脑袋有点迷糊..没注意看

# 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();
}

如上..这下没问题了!


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-04-02 17:21
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用SunShining在2006-4-2 17:21:00的发言:

不好意思.今天脑袋有点迷糊..没注意看

# 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啊





好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
2006-04-02 17:48
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
收藏
得分:0 

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");
}
就这样也是可以的,将前一个数组只当是一种数值提供就可以了。

2006-04-02 20:10
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用baifenghan在2006-4-2 20:10:00的发言:

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");
}
就这样也是可以的,将前一个数组只当是一种数值提供就可以了。

哈哈,这个方法不错,赞~







好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
2006-04-03 02:03
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用SunShining在2006-4-2 17:21:00的发言:

不好意思.今天脑袋有点迷糊..没注意看

# 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编辑过]


好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
2006-04-03 02:09
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
p=a;q=b;
与p=&a[0],q=&b[0]
好像是等效的。

2006-04-03 07:08
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用虫的传人在2006-4-3 2:09:00的发言:

现在才发现你的这个程序也是有问题的







这个问题我注意到了..理论上是不同的.可是实际操作的等价的..

因为实际上移动的还是一个整型的字节~!

我并没有用 a+i 或者b+i 如果这样用.呵呵..我就错了~!这样移动的是行..而不是列了~

你运行后..并没问题.对吗?~~

[此贴子已经被作者于2006-4-3 17:11:08编辑过]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-04-03 14:51
快速回复:[求助]请问,数组里面该如何实现元素的调换
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012198 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved