Найти произведение элементов одномерного массива, состоящего из N элементов. Размер массива и его элементы вводятся с клавиатуры.
Помогите, пожалуйста. Вот мой код:
#include <iostream>
using namespace std;
int main() {
int a, mul;
cin >> a;
const int size = a;
int arr[size];
for (int i = 0; i < size; i++)
{
cin >> arr[i];
}
for (int i = 0; i < size; i++)
{
mul *= arr[i];
}
cout << mul;
}
Ну какая же это константа? Вернее, константа - только в том смысле, что size не будет изменяться, но во время компиляции эта константа неизвестна.
const int size = a;
Соответственно, это тоже неверно - в С++ размер массива должен быть известен во время компиляции:
int arr[size];
mul надо инициализировать - вы начинаете множить мусор. Да и в int результат вряд ли поместится без переполнения.
Так что...
int n;
cin >> n;
int * arr = new int[n];
for (int i = 0; i < n; i++)
cin >> arr[i];
double mul = 1;
for (int i = 0; i < n; i++)
mul *= arr[i];
cout << mul;
Только вот смотрите - можно два цикла объединить в один, так?
double mul = 1;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
mul *= arr[i];
}
Но тогда встает вопрос - а зачем нам вообще массив? и мы получаем (еще и одну переменную экономим...)
int main()
{
int n;
cin >> n;
double mul = 1;
for (int i = n; i > 0; i--)
{
cin >> n;
mul *= n;
}
cout << mul;
}
Как то так :
int main() {
int size = 0;
double mul = 1;
cin >> size;
int * arr = new int[size];
for (int i = 0; i < size; i++)
{
cin >> arr[i];
mul *= arr[i];
}
cout << mul;
return 0;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей