【发布时间】:2022-01-09 05:41:49
【问题描述】:
我必须找到给定数组中的元素,并且我在其他站点中找到了一个程序,但是当我尝试以我的方式解释代码时,我遇到了错误。
这是来自另一个网站:
#include <iostream>
using namespace std;
// function to return sum of elements
// in an array of size n
int sum(int arr[], int n)
{
int sum = 0; // initialize sum
// Iterate through all elements
// and add them to sum
for (int i = 0; i < n; i++)
sum += arr[i];
return sum;
}
int main()
{
int arr[] = { 12, 3, 4, 15 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Sum of given array is " << sum(arr, n);
return 0;
}
这是我的:
#include <iostream>
using namespace std;
int Function(int arr[], int Broi)
{
int suma = 0;
for (int i = 0; i < Broi; i++) {
cin >> arr[Broi];
suma += arr[i];
}
return suma;
}
int main()
{
int arr;
int Broi = sizeof(arr) / sizeof(arr[0]);
cout << "Srednoto Aritmetichno e: " << Function(arr[], broi);
return 0;
}
第一个程序也给出了数组的数字,但我希望用户在你写 arr 的长度时输入>>它们。
【问题讨论】:
-
std::vector和 push_back 会是更好的c++解决方案。 -
int arr;这是一个整数。这不是一个数组。 -
错误是什么?结果错误?那是因为您写信给
arr[Broi],但添加了arr[i]。您根本不需要使用数组。只需将数字读入int并将其添加到suma。您没有在任何地方使用个人号码 -
虽然你甚至需要一个数组来解决这个问题?您可以在不使用数组的情况下对任意数量的用户输入求和。
-
旁注:使用最新的编译器,您可以将
sizeof(arr) / sizeof(arr[0])替换为std::size(arr)。请注意,要使任何一个工作,arr必须是一个数组,并且该数组不能通过将 decayed to a pointer 传递给函数或对其执行数学运算来获得。