c++可变一维数组

来源:百度知道 编辑:UC知道 时间:2024/06/02 20:16:27
“输入一组非零整数(以输入0作为输入结束标志)到一维数组中,设计一程序,求出这组数据的平均值。”
如何实现根据输入确定数组元素个数,且将数据输入数组。

#include <iostream>
#include <stdlib.h>
//#include <malloc.h>
using namespace std;
int main()
{

int *p,i,num,count;
double ave;
i = count = 0;
ave = 0;
if((p = (int *)malloc(10 * sizeof(int))) == NULL)
exit(1);

while (cin >> num && num !=0)
{
i++;
if(i > 10)
{
count++;
if ((p = (int *)realloc(p, (count+10) * sizeof(int))) == NULL)
exit(1);
}
*(p+i-1) = num;
ave += p[i-1];
}

ave /= i;

cout << ave << endl;

free(p);
exit(0);

return 0;
}

用关键字new

先new一段,提供 一个int iSize 来记录数字的个数,然后不够的时候重新分配,把原来的Copy过去就是了。

这个也可以用vector.

int n=0;

cin>>n;//你想要输入的数组元素个数

int *array=new int[n];//申请大小为n的地址空间

for(int i=0;i<n;i++)
{
cin>>array[i];//将数据输入数组