C++中 写一个swap函数 用来交换两个不同大小的数组, 怎么用传入指针实现?

50分了,好的再追加... 50分了,好的再追加 展开
 我来答
terranlong
2011-11-08 · TA获得超过7294个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:4007万
展开全部
楼主,数组是不能增加长度的,两个不同大小的数组,小的可以传给大的,大的怎么也放不下小的啊。你给多少分都没人做得出来
笃侠6A
推荐于2016-03-09 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3272万
展开全部
#include<iostream>
using namespace std;

void swap(char** s1,char **s2){
char* t;
t=*s1;
*s1=*s2;
*s2=t;
}

void main(){
char *str1="12345678";
char *str2="abcde";
swap(&str1,&str2);
cout <<str1 <<endl;
cout <<str2 <<endl;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
porker2008
推荐于2018-04-16 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
#include <stdio.h>
#include <stdlib.h>

void swap(void** a, void** b)
{
void* temp = *a;
*a = *b;
*b = temp;
}

int main()
{
int* array1 = new int[10];
for(int i=0;i<10;i++)
array1[i] = i;
int* array2 = new int[20];
for(int i=0;i<20;i++)
array2[i] = i+10;
swap((void**)&array1,(void**)&array2);
for(int i=0;i<20;i++)
printf("%d ",array1[i]);
putchar(10);
for(int i=0;i<10;i++)
printf("%d ",array2[i]);
putchar(10);
system("pause");
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-11-08
展开全部
楼上才子,赋值他的思想,都没他快。

#include<iostream>
using namespace std;

void swap(int** a, int** b)
{
int* temp = *a;
*a = *b;
*b = temp;
}

void main()
{
int *p,*q;
int i,m,n;

cin>>m>>n;
p = new int[m];
q = new int[n];

for(i=0;i<m;i++)
{
cin>>p[i];
}

for(i=0;i<n;i++)
{
cin>>q[i];
}

swap(&p,&q);

for(i=0;i<n;i++)
{
cout<<p[i]<<" ";
}

cout <<endl;
for(i=0;i<m;i++)
{
cout<<q[i]<<" ";
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-11-08
展开全部
#include<iostream>
using namespace std;
void swap(int *p,int *q)
{
int temp,i;
for(i=0;i<5;i++)
{
temp=p[i];
p[i]=q[i];
q[i]=temp;
}
}
void main()
{
int a[5]={1,3,5,7,9},b[5]={2,4,6,8,10};
cout<<"exchane before:"<<endl;
cout<<"Array a:"<<endl;
for(int i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"Array b:"<<endl;
for(int i=0;i<5;i++)
cout<<b[i]<<" ";
cout<<endl;
swap(a,b);
cout<<"exchane after:"<<endl;
cout<<"Array a:"<<endl;
for(int i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"Array b:"<<endl;
for(int i=0;i<5;i++)
cout<<b[i]<<" ";
cout<<endl;
}

//运行情况:
exchane before:
Array a:
1 3 5 7 9
Array b:
2 4 6 8 10
exchane after:
Array a:
2 4 6 8 10
Array b:
1 3 5 7 9
请按任意键继续. . .
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式