目前我只知道两种办法:
- 如果了解<vector>,可以用vector创建动态数组
#include <iostream>
#include <vector>
using namespace std;
void f(int n){
vector<int>test;
int sum=0,x;
for(int i=1;i<=n;i++)
{cin>>x; sum+=x;
test.push_back(x);
}
cout<<sum<<' '<<sum/n;
}
int main()
{
int n,x;
cin>>n;
f(n);
return 0;
}
2.或者:
#include<iostream>
using namespace std;
int main()
{ int n,sum=0; cin>>n; //分配动态一维数组
int *a=new int[n];
for(int i=0;i<n;i++)
{cin>>a[i];
sum+=a[i];
}
delete[] a; //释放a[]数组
cout<<sum<<' '<<sum/n;
return 0;
}
3.动态创建二维数组:(主要是指针的创建和释放)
#include<iostream>
using namespace std;
int main()
{ int row,col;
cin>>row>>col;
//为行指针分配空间
int **a=new int *[row];
for(int i=0;i<row;i++)
a[i]= new int[col];//为每行分配空间(每行中有col个元素)
//输入二维数组的数
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
cin>>a[i][j];
cout<<"*******************"<<endl;
//输出二维数组中的数
for(int i=0;i<row;i++)
{ for(int j=0;j<col;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
//释放二维数组(反过来)
for(int i=0;i<row;i++)
delete[] a[i];
delete[] a;
return 0;
}