C语言中用指针交换两个长度不同的数组?

输入两个数组,长度不一定相同,要用函数实现两个数组相同长度部分的交换,交换函数用指针实现

#include <stdio.h>
void change(int *a,int *b)
{
int team;
team=*a;
*a=*b;
*b=team;
}
int main() {
int a[]={1,2,3,4,5,6,7,8,9,0};
int b[]={11,12,13,14,15,16,17,18,19,20};//数组b可以长一点
printf("交换前数组a为:");
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}printf("\n");
printf("交换前数组b为:");
for(int i=0;i<10;i++){
printf("%d ",b[i]);
}printf("\n");
for(int i=0;i<10;i++)// //10为短数组的长度
change(&a[i],&b[i]);
printf("交换后数组a为:");
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}printf("\n");
printf("交换后数组b为:");
for(int i=0;i<10;i++){
printf("%d ",b[i]);
}printf("\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-09
#include
void
change(int
*a,int
*b)
{
int
team;
team=*a;
*a=*b;
*b=team;
}
int
main()
{
int
a[]={1,2,3,4,5,6,7,8,9,0};
int
b[]={11,12,13,14,15,16,17,18,19,20};//数组b可以长一点
printf("交换前数组a为:");
for(int
i=0;i<10;i++){
printf("%d
",a[i]);
}printf("\n");
printf("交换前数组b为:");
for(int
i=0;i<10;i++){
printf("%d
",b[i]);
}printf("\n");
for(int
i=0;i<10;i++)//
//10为短数组的长度
change(&a[i],&b[i]);
printf("交换后数组a为:");
for(int
i=0;i<10;i++){
printf("%d
",a[i]);
}printf("\n");
printf("交换后数组b为:");
for(int
i=0;i<10;i++){
printf("%d
",b[i]);
}printf("\n");
return
0;
}
第2个回答  2014-10-17
void castling(char *s1, char *s2)
{
char t;
for (;*s1&&*s2;s1++,s2++)
{
t =*s1;
*s1 = *s2;
*s2 = t;
}
}

追问

请给我完整代码好吗?谢谢咯

追答

核心功能已经有了,调用就使用两个数组名直接调用,其它代码自己写吧。
castling(a1,a2);//就这样调用

追问

看不懂ToT
我刚刚开始学C语言 老师也没有讲过你写的这些代码 只会一些基本的代码

追答

都已经学到函数了,前面的基础代码应该可以写一点了,剩下的没有复杂代码,和之前的一样,不要总不自己动手,这样始终没有进步的。
这段看不懂不要紧,直接用。

本回答被网友采纳
相似回答