Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 40
1

Найти произведение всех элементов массива, начиная с нулевого. Если нулевого элемента нет - вывести (-1)

31.01.2015, 10:30. Просмотров 1022. Ответов 12
Метки нет (Все метки)

В одномерном массиве, состоящем из n элементов найти:
произведение всех элементов, начиная с нулевого. Если нулевого
элемента нет – вывести -1.
то есть,например. если в массиве 20 элементов и 3 например равен нулю, то произведение начиная с 4 и по 20
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2015, 10:30
Ответы с готовыми решениями:

Выполнить циклический сдвиг всех элементов массива на один вправо начиная с последнего нулевого элемента
Дан линейный массив на N элементов. Выполнить циклический сдвиг всех его элементов на один вправо...

Выполнить циклический сдвиг всех элементов массива на один вправо начиная с первого нулевого элемента
Дан линейный массив на N элементов. Выполнить циклический сдвиг всех его элементов на один вправо...

Вывести номер последнего нулевого элемента массива или 0, если такого элемента нет
Одномерные массивы. Часть 1 1) номер последнего нулевого элемента или 0, если такого элемента...

Массивы: сумма отрицательных элементов; произведение всех элементов, начиная с нулевого
В одномерном массиве, состоящем из n элементов найти: 1) Сумму отрицательных элементов. ...

12
30 / 30 / 38
Регистрация: 23.01.2015
Сообщений: 174
31.01.2015, 10:41 2
По-моему так. Идея ясна ?!
C++
1
2
3
4
5
int A[10] = { 0, 0, 4, 5, 8, 4, 6, 9, 4, 8 };
int j = 0, mul = 1; int& i = j;
while (A[j] == 0 && j < 10) j++;
while (i < 10) mul*=A[i++];
printf("mul = %d\n", mul);
0
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 40
31.01.2015, 11:03  [ТС] 3
Непонятна строчка int& i = j
0
30 / 30 / 38
Регистрация: 23.01.2015
Сообщений: 174
31.01.2015, 11:05 4
Непонятна строчка int& i = j
int& i = j, это ссылка на значение типа int. последнее значение j после выхода из первого цикла будет присвоено перемнной i - это значение первого ненулевого элемента в массиве.
0
Эксперт C
24882 / 15441 / 3270
Регистрация: 24.12.2010
Сообщений: 33,316
31.01.2015, 11:06 5
Цитата Сообщение от Vladok Посмотреть сообщение
Непонятна строчка int& i = j
Мне тоже. Видимо, описка.
0
30 / 30 / 38
Регистрация: 23.01.2015
Сообщений: 174
31.01.2015, 11:10 6
это НЕ описка. я уже объяснял выше.
0
Dimension
579 / 447 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.01.2015, 12:02 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        const int N = 9;
    int a[N] = { 9,4, 5, 0, 4, 6, 0, 0, 8 };
    int sum = -1, j;
    for (int i = 0; i < N; i++){
        if (a[i] == 0){
                        sum=1;
            for (j = i; j < N; j++)
            {
                sum *= a[j];
            }
        }
        if (j == N ){
            printf("%d\n", sum );
            return 0;
        }
    }
    printf("%d\n",sum) ;
        return 0;
0
Эксперт PHP
4257 / 3473 / 1472
Регистрация: 24.04.2014
Сообщений: 10,307
31.01.2015, 12:05 8
Цитата Сообщение от 1XPLoade1 Посмотреть сообщение
это НЕ описка. я уже объяснял выше.
А можешь объяснить, с каких пор в C появились ссылки?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30337 / 19829 / 7750
Регистрация: 22.10.2011
Сообщений: 34,577
Записей в блоге: 6
31.01.2015, 12:06 9
Цитата Сообщение от 1XPLoade1 Посмотреть сообщение
это ссылка на значение типа int
Это вообще-то раздел "Си для начинающих", а не С++...
0
Dimension
579 / 447 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.01.2015, 12:09 10
я не заметил что нужно произведение ,поэтому там где второй цикл ,он должен начинаться с j=i+1;
0
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 40
31.01.2015, 12:30  [ТС] 11
У меня не компилируеться проект
0
0 / 0 / 0
Регистрация: 10.05.2014
Сообщений: 18
31.01.2015, 19:07 12
подскажите что значит к примеру a*=b;
0
Модератор
Эксперт Python
27069 / 14205 / 2743
Регистрация: 12.02.2012
Сообщений: 23,297
Записей в блоге: 3
31.01.2015, 20:22 13
Неужели трудно четко сформулировать задачу?!! Не бывает в C массивов, в которых "нет нулевого элемента"!!! Программист должен мыслить стройно (и так же стройно излагать свои мысли). Дисциплина-то точная (не гуманитарная)...

Как я понял, нужно всего-то вычислить произведение ненулевых элементов произвольного массива. Это делается, например, так:

C
1
2
3
4
5
6
7
int Prod(int *A,int n)
{
     int i,p=1;
     for (i=0; i<n; i++) 
         if (A[i] != 0) p*=A[i];
     return p;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2015, 20:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Вывести значения всех элементов массива до первого нулевого элемента. Нулевой элемент не выводить
Вывести значения всех элементов массива до первого нулевого элемента. Нулевой элемент не выводить....

Найти произведение элементов последовательности до первого нулевого и сумму элементов после нулевого
Дана последовательность чисел c1,c2,....,c16. Найти произведение элементов этой последовательности...

Найти произведение элементов последовательности до первого нулевого и сумму элементов после нулевого
Дана по следовательность чисел с1,с2...,с16 . найти произведение элементов этой последовательности...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.