Ввод и вычисление произведения элементов массива

150
18 мая 2022, 16:50

Найти произведение элементов одномерного массива, состоящего из 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;
}
Answer 1

Ну какая же это константа? Вернее, константа - только в том смысле, что 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;
}
Answer 2

Как то так :

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;
}
READ ALSO
Как правильно отсортировать структуру по полю динамической строки с помощью qsort(СИ)?

Как правильно отсортировать структуру по полю динамической строки с помощью qsort(СИ)?

пишу интерпретатор командЕсть входной файл, в котором даны инструкции вида:

110
Конфликт размера операндов

Конфликт размера операндов

нужно значение из регистра edx перенести в массив символовНе знаю как исправить конфликт операндов

216
Методы минимизации функции нескольких переменных

Методы минимизации функции нескольких переменных

Какой метод поиска минимума функции лучше всего использовать для такой задачи: Есть функции двух, трёх переменных и нужно найти минимальное...

141
Действие функции fflush()

Действие функции fflush()

Не понимаю, какое действие выполняет функция php fflush()В следующем примере у неё как будто нет никакого эффекта:

240