我试图在C ++中运行一个简单的代码,让用户输入一个数字数组并返回数组中的数字总和。 这就是代码:
int main() {
int t;
int arr[t];
int sum=0;
cin>> t;
for(int i=0;i<t;i++)
{
cin>>arr[i];
}
for(int y=0;y<t;y++){
sum+=arr[y];
}
cout<<sum;
return 0;
}
我遇到了分段错误。任何澄清?
答案 0 :(得分:0)
您应该在此处更改行的顺序:
int t;
cin>> t;
int arr[t];
int sum=0;
并最好使用std::vector<int> arr(t);
来实现可移植性
答案 1 :(得分:0)
使用std::vector
代替数组,因为它可以动态增长。
如果要创建大小在运行时确定的数组,请使用new
,如下所示:
unsigned int t = 0;
cin&gt;&gt;吨;
int * p_array = new int [t];
记得在完成数组后使用delete [];
。