新手编写代码,如有漏洞或更优解望指教
问题描述
输入数组大小,根据输入分配动态数组空间,并初始化为全0。
再次输入需要扩容数组大小,实现数组扩容,扩容部分初始化为全1。
输出数组全部元素。
输入
输入数组大小
再次输入需要扩容数组大小
输出
输出数组全部元素
样例输入 复制
3 4
样例输出 复制
0 0 0 1 1 1 1
本题中,我将扩容功能写在了函数里,代码编写如下:
#include<iostream>
using namespace std;
void App(int*& p, int len1, int len2)
{
if (len1 == 0)//第一次len1为0时,只进行if语句
{
p = new int[len2];
return;
}
int* q = new int[len2];
for (int i = 0; i < len1; i++)
q[i] = p[i];
delete[]p;
p = q;
}
int main()
{
int* a, i, n, m;
cin >> n;
App(a, 0, n);
for (i = 0; i < n; i++)
a[i] = 0;
cin >> m;
App(a, n, m + n);
for (i = n; i < m + n; i++)
a[i] = 1;
for (i = 0; i < n + m; i++)
cout << a[i] << " ";
delete[]a;//申请了动态数组,一定记得释放哦
}