主题:一维数组中的数组元素换位置问题
雨523
[专家分:200] 发布于 2006-06-24 14:17:00
已知在一维数组A中依次存放着两个向量(a1,a2,...,am)和(b1,b2,...,bn)试编写算法将两个向量的位置互换,即把(b1,b2,...,bn)放到(a1,a2,...,an)的前面。
回复列表 (共8个回复)
沙发
雨523 [专家分:200] 发布于 2006-06-24 14:54:00
#include<stdio.h>
main()
{
int a[]={1,2,3,4,5,6,10,20,30,40,50};
int b[]={};
int i,j;
for(i=0;i<=10;i++){b[i]=a[i];printf("%d ",b[i]);}
printf("\nok\n");
for(i=0;i<=10;i++)a[i]=0;
for(i=0;i<=4;i++) {j=i+6;a[i]=b[j];}
for(i=5;i<=10;i++){j=i-5;a[i]=b[j];}
for(i=0;i<=10;i++)printf("%d ",a[i]);
}
为何不对?
板凳
雨523 [专家分:200] 发布于 2006-06-24 17:48:00
// 已知在一维数组A中依次存放着两个向量(a1,a2,...,am)和(b1,b2,...,bn)
// 试编写算法将两个向量的位置互换,
// 即把(b1,b2,...,bn)放到(a1,a2,...,an)的前面。
#include<stdio.h>
main()
{
int a[]={1,2,3,4,5,6,10,20,30,40,50};
int b[]={0,0,0,0,0,0,0,0,0,0,0}; //这里的初始值很重要
int i,j;
for(i=0;i<=10;i++){b[i]=a[i];printf("%d ",b[i]);}
printf("\nok\n");
for(i=0;i<=10;i++)a[i]=0;
for(i=0;i<=4;i++){j=i+6;a[i]=b[j];};
for(i=5;i<=10;i++){j=i-5;a[i]=b[j];};
for(i=0;i<=10;i++)printf("%d ",a[i]);
}
现在改出来了,原来是这样,b的初始化很重要。
3 楼
silentfs [专家分:30] 发布于 2006-06-24 17:49:00
int b[]={0,0,0,0,0,0,0,0,0,0}
4 楼
rickone [专家分:15390] 发布于 2006-06-30 20:47:00
可以简单写成int b[11]={0};
5 楼
雨523 [专家分:200] 发布于 2006-07-04 12:55:00
嗯,还行:)
6 楼
雨523 [专家分:200] 发布于 2006-10-19 17:20:00
d
7 楼
david520042 [专家分:60] 发布于 2006-10-19 23:58:00
c[i]和c[n-i-1]交换
8 楼
雨523 [专家分:200] 发布于 2006-10-21 15:08:00
good
我来回复