C/C++ 复制数组【简单易懂,代码可以直接运行】
这道题我觉得最值得看的一点就是引用型参数,我以前只是听老师说参数有普通得形参和引用型形参,但是一直没有真正用过引用型形参,通过这个题才算是搞明白一点。
给定两个数组 a 和 b 以及一个整数 size,请你编写一个函数,void copy(int a[], int b[], int size),将 a 数组中的前 size 个数字,复制到 b 数组中。
复制完成后,输出 b 数组。
输入格式
第一行包含整数 n,m,size,分别表示 a 数组的长度,b 数组的长度以及整数 size。
第二行包含 n 个整数,表示数组 a。
第三行包含 m 个整数,表示数组 b。
输出格式
共一行,包含 m 个整数,表示复制完成后的数组 b。
数据范围
1≤n≤m≤100,
1≤size≤n
输入样例:
3 5 2
1 2 3
4 5 6 7 8
输出样例:
1 2 6 7 8
注意:传入形参的数组时指向数组的指针而不是数组本身,不要在自定义函数内部求解数组的长度,64位的电脑用sizeof求出来的永远是8,32位永远是4。之前我就一直掉在这个坑里面出不来了!
代码如下:
#include<iostream>
#include<cstring>
using namespace std;
void copy(int a[],int b[],int size)
{
int i;
for(i = 0;i < size;i++)//sizeof()函数用来求解数组的长度
b[i] = a[i];
}
int main()
{
int a[100],b[100];
int n,m,size,i;
cin>>n>>m>>size;
for(i = 0;i < n;i++)
cin>>a[i];
for(i = 0;i < m;i++)
cin>>b[i];
copy(a,b,size);
for(i = 0;i < m;i++)
cout<<b[i]<<" ";
return 0;
}
点个👍吧!