Форум программистов, компьютерный форум CyberForum.ru

Нужно найти произведение между min и max элементами массива - C++

Восстановить пароль Регистрация
 
Leert
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
22.03.2014, 16:10     Нужно найти произведение между min и max элементами массива #1
Нужно найти произведение между min и max...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include "iostream"
#include <stdio.h>
#include <conio.h>
#include <locale.h>
void main ()
{
using namespace std;
int a[10] proz=0;
a[5] = 5;
for (int i=0; i<10; i++)
     a[i]=0;
min=0;
for (int i=1; i<10; i++)
    if (a[i]<a[min]) {
        min=i;}
    max=0;
for (int i=1; i<10; i++)
    if (a[i]>a[max]) {
max=i;
}
for (int i=0; i<10; i++)
    if (a[i]<0) proz=proz*min*max;
return 0;
}
Добавлено через 17 минут
Пожалуйста
Подскажите, где ошибка...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 16:10     Нужно найти произведение между min и max элементами массива
Посмотрите здесь:

C++ Найти max и min, если min левее max, то среднее арифметическое между ними
C++ Дан целочисленный массив размера N. Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами. зарание благодарен
C++ Найти произведение элементов массива, расположенных между макси- мальным и минимальным элементами
Нужно дописать, произведение отрицательных элементов массива, расположенных между минимальным и максимальным элементами C++
Одномерный массив. Найти произведение элементов массива, расположенных между максимальным и минимальным элементами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gabdulhanov
18 / 18 / 6
Регистрация: 22.03.2014
Сообщений: 79
22.03.2014, 16:24     Нужно найти произведение между min и max элементами массива #2
произведение 0 будет, так как proz 0, если произведение элемнтов надо найти то так for (int i=min; i<max; i++)
proz=proz*a[i];
и сначала proz приравнять к 1
Leert
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
22.03.2014, 16:42  [ТС]     Нужно найти произведение между min и max элементами массива #3
он выводит ошибки...
error C2659: =: функция в качестве левого операнда
error C2659: =: функция в качестве левого операнда
error C2563: несоответствие в списке формальных параметров
error C2568: [: не удается разрешить перегрузку функции
error C2065: proz: необъявленный идентификатор
error C2065: proz: необъявленный идентификатор
error C2562: main: функция типа "void", возвращающая значение
Yamko
11 / 11 / 2
Регистрация: 10.03.2013
Сообщений: 104
22.03.2014, 17:48     Нужно найти произведение между min и max элементами массива #4
Leert, что значит произведение между мин и макс? Чисел между ними или произведение мин*макс?

Добавлено через 26 минут
Находит произведение элементов массива, которые находятся между min и max.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
    srand(time(0));
    int arr[10];
    int proizv=1;
    for (int i = 0; i < 10; i++)
        arr[i]=rand()%100;
    cout<<"Исходный массив:"<<endl;
    for (int i = 0; i < 10; i++)
        cout<<arr[i]<<" ";
    int min=arr[0], minPos=0;
    int max=arr[0], maxPos=0;
    for (int i = 0; i < 10; i++)
    {
        if(arr[i]>max)
        {
            max=arr[i];
            maxPos=i;
        }
        if(arr[i]<min)
        {
            min=arr[i];
            minPos=i;
        }
    }
    if(maxPos>minPos)   
        for (int i = minPos+1; i < maxPos; i++)
            proizv*=arr[i];
    else if(maxPos<minPos)
        for (int i = maxPos+1; i < minPos; i++)
            proizv*=arr[i];
        else cout<<"Между max и min нет элементов\n";
    cout<<"\nПроизведение: "<<proizv<<endl;
    cout<<"Позиция min: "<<minPos<<endl<<"Позиция max: "<<maxPos<<endl;
    system("pause");
    return 0;
}
Leert
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
22.03.2014, 17:50  [ТС]     Нужно найти произведение между min и max элементами массива #5
Надо найти мин и макс в массиве, и найти их произведение

Добавлено через 1 минуту
Цитата Сообщение от Yamko Посмотреть сообщение
Leert, что значит произведение между мин и макс? Чисел между ними или произведение мин*макс?
В матрице нужно найти макс и мин, а после произведение между ними
Mikhail1990
9 / 9 / 1
Регистрация: 22.03.2014
Сообщений: 155
22.03.2014, 17:53     Нужно найти произведение между min и max элементами массива #6
Вот рабочий код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <ctime>//библиотека для использования текущего времени
using namespace std;
int main ()//int main ф-ция возвращает параметр а void нет по этому в войде писать надо просто return;
{
    srand((unsigned)time(NULL));//вызывает ф-цию рандома
    int a[10], proz=0;
    for(int i=0; i<10; i++)
    {
        a[i] =rand()%10+1;//заполнение рандомом от 1 до 9
    }
    int min=a[0];//присвоили первое якобы минимальное значение с массива
    for (int i=0; i<10; i++)
    {
        if (min>a[i])//если наш минимум больше a[i] то
        {
            min=a[i];//присваиваем
        }
    }
    int max=a[0];//присвоили первое якобы максимальное значение с массива
    for (int i=0; i<10; i++)
    {
        if (max<a[i])//если наш максимум меньше a[i] то
        {
            max=a[i];//присваиваем
        }
    }
    cout<<min<<' '<<max<<endl;//выводит найденное мин и макс
    proz=max*min;
    cout<<"Value is "<<proz<<endl;
    return 0; //а тут с нулем так как int main а не void main
}
Yamko
11 / 11 / 2
Регистрация: 10.03.2013
Сообщений: 104
22.03.2014, 17:54     Нужно найти произведение между min и max элементами массива #7
Leert, тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
    srand(time(0));
    int arr[10];
    int proizv=1;
    for (int i = 0; i < 10; i++)
        arr[i]=rand()%100;
    cout<<"Исходный массив:"<<endl;
    for (int i = 0; i < 10; i++)
        cout<<arr[i]<<" ";
    int min=arr[0];
    int max=arr[0];
    for (int i = 0; i < 10; i++)
    {
        if(arr[i]>max)
            max=arr[i];
        if(arr[i]<min)
            min=arr[i];
    }
    proizv=min*max;
    cout<<"\nПроизведение: "<<proizv<<endl;
    system("pause");
    return 0;
}
Leert
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
22.03.2014, 17:57  [ТС]     Нужно найти произведение между min и max элементами массива #8
Спасибо
Leert
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
03.04.2014, 17:53  [ТС]     Нужно найти произведение между min и max элементами массива #9
Помогите, пожалуйста, как изменить программу, чтобы она выполняла это условие...
В одномерном массиве, состоящем из N целых элементов, вычислите произведение элементов массива, расположенных между минимальным и максимальным элементами.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <time.h>;
using namespace std;
int main ()
{
setlocale(LC_ALL, "rus");
const int size=10;
 
int a[size]; 
int min=0; 
int max=0;
int proz=1; 
srand(time(0));
for (int i=0; i<size; i++) {
     a[i]=rand() % 10 + 2;
    cout << a[i] << " ";
     if (a[i]<a[min])
        min=i;
     if (a[i]>a[max])
        max=i;
}
 
proz = a[min]*a[max];
cout << "\nМин. элемент: " <<a[min] << endl;  
cout << "Макс. элемент: " <<a[max] << endl;  
cout << "Произведение " <<proz<< endl;  
getch();
return 0;
}
Добавлено через 44 минуты
На С++
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
03.04.2014, 18:00     Нужно найти произведение между min и max элементами массива #10
Цитата Сообщение от Leert Посмотреть сообщение
На С++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <math.h>
#define N 10
int main()
{
    int *mas = new int[N];
    std::cout << "Enter " << N << " elements\n";
    for (int i = 0; i < N; ++i)
    {
        std::cout << "\n";
        std::cout << i << " element - ";
        std::cin >> mas[i];
    }
    int max = mas[0];
    int max_id = 0;
    int min = mas[0];
    int min_id = 0;
 
    for (int i = 0; i < N; ++i)
    {
        if (mas[i] > max)
        {
            max_id = i;
            max = mas[i];
        }
        if (mas[i] < min)
        {
            min_id = i;
            min = mas[i];
        }
    }
    int result = 1;
    for (int i = min_id; i < max_id; ++i)
        result *= mas[i];
    std::cout << "\nResult is " << result;
    system("pause>>null");
}
Leert
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
03.04.2014, 18:18  [ТС]     Нужно найти произведение между min и max элементами массива #11
Спасибо
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
03.04.2014, 18:33     Нужно найти произведение между min и max элементами массива #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
#include <numeric>
 
int main()
{
    int n, arr[100];
    std::cin >> n;
    std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), arr);
    int *min = std::min_element(arr, arr+n), *max = std::max_element(arr, arr+n);
    std::cout << std::accumulate(std::min(min,max)+1, std::max(min,max), 1, std::multiplies<int>());
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 13:50     Нужно найти произведение между min и max элементами массива
Еще ссылки по теме:

Сумма элементов между MIN и MAX последовательности без массива C++
C++ Произведение суммы значений отрицательных элементов массива, лежащих между min и max, на их количество
C++ Найти произведение элементов массива, расположенных между максимальным и минимальным элементами

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

Или воспользуйтесь поиском по форуму:
Leert
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
06.04.2014, 13:50  [ТС]     Нужно найти произведение между min и max элементами массива #13
Простите, а как сделать, чтобы она работала в обратном направлении?
когда наоборот max правее min

Добавлено через 4 часа 50 минут
Скажите, пожалуйста, где у меня ошибка... Не могу понять... Я когда ввожу числа 10, 2, 3, 1, 5, ,5, 5, то он считает вместе с max и min
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include <iostream>
#include <math.h>
#define N 10
int main()
{
    int *mas = new int[N];
    std::cout << "Enter " << N << " elements\n";
    for (int i = 0; i < N; ++i)
    {
        std::cout << "\n";
        std::cout << i << " element - ";
        std::cin >> mas[i];
    }
    int max = mas[0];
    int max_id = 0;
    int min = mas[0];
    int min_id = 0;
 
    for (int i = 0; i < N; ++i)
    {
        if (mas[i] > max)
        {
            max_id = i;
            max = mas[i];
        }
        if (mas[i] < min)
        {
            min_id = i;
            min = mas[i];
        }
    }
    int result = 1;
    for (int i = min_id; i < max_id; ++i)
       {
           if ( min_id < max_id);
           {result *= mas[i];}
    }
    for (int i = max_id; i < min_id; ++i)
       {
           if ( max_id < min_id);
           {result *= mas[i];}
    }
 
    std::cout << "\nResult is " << result;
    system("pause>>null");
 
}
Yandex
Объявления
06.04.2014, 13:50     Нужно найти произведение между min и max элементами массива
Ответ Создать тему
Опции темы

Текущее время: 20:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru