Как составить программу для нахождения произведения элементов массива

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

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    We are given an array, and we have to calculate the product of an array using both iterative and recursive methods. 

    Examples:  

    Input : array[] = {1, 2, 3, 4, 5, 6}
    Output : 720
    Here, product of elements = 1*2*3*4*5*6 = 720

    Input : array[] = {1, 3, 5, 7, 9}
    Output : 945 

    Iterative Method: We initialize result as 1. We traverse array from left to right and multiply elements with results. 

    Implementation:

    C++

    #include<bits/stdc++.h>

    using namespace std;

    int multiply(int array[], int n)

    {

        int pro = 1;

        for (int i = 0; i < n; i++)

            pro = pro * array[i];

        return pro;

    }

    int main()

    {

        int array[] = {1, 2, 3, 4, 5, 6};

        int n = sizeof(array) / sizeof(array[0]);

        cout << multiply(array, n);

        return 0;

    }

    Java

    import java.io.*;

    public class GFG

    {

        static int arr[] = {1, 2, 3, 4, 5, 6};

        static int multiply()

        {

            int pro = 1;

            for (int i = 0; i < arr.length; i++)

                pro = pro * arr[i];

            return pro;

        }

        public static void main(String[] args)

        {

            System.out.println(multiply());

            }

    }

    Python3

    def multiply( array , n ):

        pro = 1

        for i in range(n):

            pro = pro * array[i]

        return pro

    array = [1, 2, 3, 4, 5, 6]

    n = len(array)

    print(multiply(array, n))

    C#

    using System;

    class GFG

    {

        static int []arr = {1, 2, 3, 4, 5, 6};

        static int multiply()

        {

            int pro = 1;

            for (int i = 0; i < arr.Length; i++)

                pro = pro * arr[i];

            return pro;

        }

        public static void Main()

        {

            Console.Write(multiply());

        }

    }

    PHP

    <?php

    function multiply($arr, $n)

    {

        $pro = 1;

        for ($i = 0; $i < $n; $i++)

            $pro = $pro * $arr[$i];

        return $pro;

    }

    $arr = array(1, 2, 3, 4, 5, 6);

    $n = sizeof($arr) / sizeof($arr[0]);

    echo multiply($arr, $n);

    return 0;

    ?>

    Javascript

    <script>

        var arr = [ 1, 2, 3, 4, 5, 6 ];

        function multiply() {

            var pro = 1;

            for (i = 0; i < arr.length; i++)

                pro = pro * arr[i];

            return pro;

        }

            document.write(multiply());

    </script>

    Time Complexity: O(n)
    Auxiliary Space: O(1)

    Recursive Method:

    C++

    #include<iostream>

    using namespace std;

    int multiply(int a[], int n)

    {

        if (n == 0)

            return(a[n]);

        else

            return (a[n] * multiply(a, n - 1));

    }

    int main()

    {

        int array[] = {1, 2, 3, 4, 5, 6};

        int n = sizeof(array) / sizeof(array[0]);

        cout << multiply(array, n - 1)

             << endl;

        return 0;

    }

    Java

    import java.io.*;

    public class GFG

    {

        static int arr[] = {1, 2, 3, 4, 5, 6};

        static int multiply(int a[], int n)

        {

            if (n == 0)

                return(a[n]);

            else

                return (a[n] * multiply(a, n - 1));

        }

        public static void main(String[] args)

        {

            System.out.println(multiply(arr,

                           arr.length - 1));

            }

    }

    Python3

    def multiply( a , n ):

        if n == 0:

            return(a[n])

        else:

            return (a[n] * multiply(a, n - 1))

    array = [1, 2, 3, 4, 5, 6]

    n = len(array)

    print(multiply(array, n - 1))

    C#

    using System;

    class GFG

    {

        static int []arr = {1, 2, 3, 4, 5, 6};

        static int multiply(int []a, int n)

        {

            if (n == 0)

                return(a[n]);

            else

                return (a[n] * multiply(a, n - 1));

        }

        public static void Main()

        {

            Console.Write(multiply(arr,

                                   arr.Length - 1));

        }

    }

    PHP

    <?php

    function multiply( $a, $n)

    {

        if ($n == 0)

            return($a[$n]);

        else

            return ($a[$n] *

                     multiply($a, $n - 1));

    }

    $array = array(1, 2, 3, 4, 5, 6);

    $n = count($array);

    echo multiply($array, $n - 1)

    ?>

    Javascript

    <script>

        var arr = [ 1, 2, 3, 4, 5, 6 ];

        function multiply(a , n) {

            if (n == 0)

                return (a[n]);

            else

                return (a[n] * multiply(a, n - 1));

        }

            document.write(multiply(arr,

                           arr.length - 1));

    </script>

    Time Complexity: O(n)
    Auxiliary Space: O(n)

    Using Library functions:

    C++

    #include <iostream>

    #include <numeric>

    using namespace std;

    int multiply(int array[], int n)

    {

        int pro = 1;

        return accumulate(array, array + n, pro,

                          multiplies<int>());

    }

    int main()

    {

        int array[] = { 1, 2, 3, 4, 5, 6 };

        int n = sizeof(array) / sizeof(array[0]);

        cout << multiply(array, n);

        return 0;

    }

    Java

    import java.util.Arrays;

    import java.util.function.IntBinaryOperator;

    public class GFG {

        public static int multiply(int[] array)

        {

            int pro = 1;

            return Arrays.stream(array).reduce(

                pro, new IntBinaryOperator() {

                    @Override

                    public int applyAsInt(int left, int right)

                    {

                        return left * right;

                    }

                });

        }

        public static void main(String[] args)

        {

            int[] array = { 1, 2, 3, 4, 5, 6 };

            int n = array.length;

            System.out.println(multiply(array));

        }

    }

    Python3

    from functools import reduce

    def multiply(array, n):

        return reduce((lambda x, y: x * y), array)

    array = [1, 2, 3, 4, 5, 6]

    n = len(array)

    print(multiply(array, n))

    C#

    using System;

    using System.Linq;

    public class GFG {

        static int Multiply(int[] array, int n)

        {

            int pro = 1;

            return array.Aggregate(pro, (current, t) =

                                            > current * t);

        }

        static public void Main(string[] args)

        {

            int[] array = { 1, 2, 3, 4, 5, 6 };

            int n = array.Length;

            Console.WriteLine(Multiply(array, n));

        }

    }

    Javascript

    <script>

      function multiply(array) {

        let pro = 1;

        return array.reduce((acc, cur) => acc * cur, pro);

      }

      let array = [1, 2, 3, 4, 5, 6];

      let n = array.length;

      console.log(multiply(array));

    </script>

    Time Complexity: O(n)
    Auxiliary Space: O(1)

    This article is contributed by Rishabh Jain. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks. 

    Last Updated :
    01 Mar, 2023

    Like Article

    Save Article

    Сумма и произведение элементов массива

    Просмотров 10.7к. Обновлено 15 октября 2021

    Заполнить массив вещественных чисел вводом с клавиатуры. Посчитать сумму и произведение элементов массива. Вывести на экран сам массив, полученные сумму и произведение его элементов.

    1. Присвоить переменной, в которой будет храниться сумма, значение 0, а переменной для произведения — значение 1.
    2. В цикле увеличивая индекс массива от начала до конца
      1. считывать с клавиатуры число и записывать его в текущую ячейку массива,
      2. увеличивать переменную с суммой на введенное число.
      3. умножать переменную с произведением на введенное число.
    3. В цикле увеличивая индекс массива от начала до конца вывести все элементы массива.
    4. Вывести сумму и произведение.

    Pascal

    сумма элементов массива паскаль


    const N = 10;
    var
    a: array[1..N] of real;
    sum, mult: real;
    i: integer;
    begin
    sum := 0;
    mult := 1;
    for i:=1 to N do begin
    read(a[i]);
    sum := sum + a[i];
    mult := mult * a[i];
    end;
    for i:=1 to N do write(a[i]:5:2);
    writeln;
    writeln(sum:5:2);
    writeln(mult:5:2);
    end.



    4.3 2.3 4.5 3.3 8.3 1.2 8.3 9.1 2.3 3.6
    4.30 2.30 4.50 3.30 8.30 1.20 8.30 9.10 2.30 3.60
    47.20
    914812.11

    Язык Си


    #include
    #define N 10

    main() {
    float a[10], sum, mult;
    int i;
    sum = 0;
    mult = 1;
    for (i=0; i < 10; i++) {
    scanf("%f", &a[i]);
    sum += a[i];
    mult *= a[i];
    }
    for (i=0; i < 10; i++) {
    printf("%.2f ", a[i]);
    }
    printf("n%.2fn", sum);
    printf("%.2fn", mult);
    }

    Python

    сумма элементов массива python (питон)


    a = [0]*10
    s = 0
    m = 1
    for i in range(10):
    a[i] = float(input())
    s += a[i]
    m *= a[i]
    print(a)
    print(s)
    print('%.4f'%m)

    КуМир


    алг сумма элементов
    нач
    цел N=10
    вещ таб a[1:N]
    вещ sum, mult
    цел i
    sum := 0
    mult := 1
    нц для i от 1 до N
    ввод a[i]
    sum := sum + a[i]
    mult := mult * a[i]
    кц
    нц для i от 1 до N
    вывод a[i], " "
    кц
    вывод нс, sum, нс
    вывод mult
    кон

    Basic-256


    dim a(10)
    sum = 0
    mult = 1
    for i=0 to 9
    input a[i]
    sum = sum + a[i]
    mult = mult * a[i]
    next i

    for i=0 to 9
    print a[i] + " ";
    next i
    print
    print sum
    print mult

    Такая задача часто встречается, если вы начали изучение программирования и уже дошли до работы с массивами.

    Давайте разберемся с ней. Если вам необходимо найсти сумму или произведение элементов массива, или даже и то и другое, то нам понадобится для этого всего лишь один цикл.

    Мы с напишем программу, которая выведет сам массив, сумму элементов массива, а также произведение элементов массива. Напишем ее на C++.

    Прежде чем написать, давайте немного разберем сам алгоритм, обозначим шаги, которые необходимо будет сделать.

    Первое — создадим сам массив, создадим начальную переменную для хранения суммы и начальную переменную для хранения произведения элементов массива.

    Второе — с помощью цикла берем каждый элемент с первого до последнего. Элемент прибавляем его к переменной, котроая хранит сумму и записываем в переменную, которая хранит сумму (тавталогия?). Аналогичное проделываем и с переменной, которая хранит произведение.

    Третье — выводим массив и выводим значения переменных, которые хранят сумму и произведение элементов массива.

    Давайте теперь уже напишем программу, которая найдет сумму и произведение элементов массива на C++

    
    #include 
     
    using namespace std;
     
    int main()
    {
    	/* Заполним массив значениями */
    	int n = 6;
    	int mass[n] = {5, 3, 2, 9, 3, 8};
    	
    	/* Создадим переменные для хранения суммы и произведения */
    	int sumValue = 0; // Сумма
    	int proValue = 1; // Произведение (по умолчанию 1)
    	
    	cout << endl << "Массив = ";
    	/* Проходим по всем элементам массива */
    	for (int i = 0; i < n; ++i) {
    		// Вынесем текущий элемент в переменную
    		int currentElementValue = mass[i];
    		
    		// Сразу выведем его
    		cout << currentElementValue << " ";
    		
    		// Пересчитываем сумму элементов массива с текущим значением
    		sumValue = sumValue + currentElementValue;
    		
    		// Пересчитываем произведение элементов массива с текущим значением
    		// Если бы по умолчанию proValue был не 1, а 0, то так сделать нельзя было бы
    		// т.к. был бы всегда 0 при умножениях.
    		proValue = proValue * currentElementValue;
    	}
    	
    	cout << endl << "Сумма элементов массива = " << sumValue;
    	cout << endl << "Произведение элементов массива = " << proValue;
    	
    	
    	
    	
    	return 0;
    }
    
    

    Компилируем и запускаем. Видим следующий вывод программы.

    Вывод программы

    Проверяем на калькуляторе – все работает как нужно.



    Знаток

    (273),
    закрыт



    11 лет назад

    кажется, тут был ник

    Просветленный

    (21205)


    11 лет назад

    program name;
    const n=5;
    var
    m:array[1..n] of integer;
    i,t:integer;
    begin
    writeln(‘Введите ‘,n,’ елементов массива’);
    for i:=1 to n do readln(m{i});
    t:=m{1};
    for i:=2 to n do t:=t*m{i};
    write(‘вывод массива: ‘);
    for i:=1 to n do write(m{i},’ ‘);
    writeln(#13#10,’Результат произведения элементов массива: ‘,t);
    readln;
    end.

    фигурные скобки замени на квадратые

    Антон Назаров

    Мыслитель

    (6100)


    11 лет назад

    program mas;
    cоnst n=5;
    var
    a:array[1..n] of integer;
    i,t:integer;
    begin
    writeln(‘Введите ‘,n,’ елементов массива’);
    for i:=1 to n do readln(m{i});
    t:=1;
    for i:=2 to n do t:=t*m{i};
    write(‘вывод массива: ‘);
    for i:=1 to n do write(m{i},’ ‘);
    writeln(‘Результат произведения элементов массива: ‘,t);
    readln;
    end.

    Источник: Поправка предыдущего ответа начальное значение произведение равно 1!!!!а не значению первого элемента

    DISEIL

    Профи

    (617)


    11 лет назад

    первый вариант написали правильно

    Антон Назаров вы тупо копировали его код и заменили переменные причем не до конца и испортили код.
    Зачем вы переименовали массив М в А?
    а ниже то забыли переименовать?
    а почему это т=1?
    допустим у нас 3 елемента массива 15 65 89
    мы их перемножаем со 2 елемента, при этом 1 елемент пишем в Т 10*65*89
    а вы так перемножаете 1*65*89
    а первый элемент массива куда дели?
    Первый ответ правильный!

    инсар салахов

    Профи

    (578)


    2 года назад

    uses crt ;
    type
    massiv = array [1..100] of integer;
    var
    mass : massiv;
    n, i, proiz : integer;
    begin
    clrscr; // очищаем экран
    write(‘Введите кол-во элементов массива : ‘); readln(n);
    proiz := 1 ;
    for i:=1 to n do
    begin
    write(‘Введите ‘, i , ‘ число : ‘); readln(mass[i]);
    proiz := proiz * mass[i];
    end;
    writeln(‘Произведение массива из ‘, n , ‘ элементов = ‘, proiz);
    readln; // чтобы программа не закрывалась
    end.

    Добавить комментарий