Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
OlegSTEP
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 12
Завершенные тесты: 1
1

Найти минимальный элемент массива, умножить на него все отрицательные элементы, стоящие слева

11.09.2016, 18:13. Просмотров 1408. Ответов 4
Метки нет (Все метки)

Вообщем условие такое: Среди отрицательных элементов массива найти минимальный, умножить на него все отрицательные элементы стоящие левее от минимального.

Я только нашел минимальный элемент, не пойму как найти все отрицательные элементы левее минимального.
Это наверное как то по индексу нужно? Помогите пожалуйста!
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
void func(int mas[], int size)
{
    int min=0;
    for (int i=0; i<size; i++)
    {
        if(mas[i]<min)
        {
            min=mas[i];
        }
    }
    cout<<"Минимальны элемент массива: "<<min<<endl;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time (NULL));
 
    const int size = 15;
    int mas[size];
    for (int i=0; i<size; i++)
    {
        mas[i] = rand() % 99 - 30;
        cout<<mas[i]<<" ";
    }
    cout<<endl;
    func(mas,size);
    
    
 
    system("pause");
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2016, 18:13
Ответы с готовыми решениями:

Найти минимальный элемент в массиве Y (25). Умножить на него все ненулевые элементы.
Найти минимальный элемент в массиве Y (25). Умножить на него все ненулевые элементы. Распечатать...

Найти наибольшее значение массива и умножить на него все элементы
Составить программы. C++. 1. Заданы два массива – А(5) и В(5). В каждом из массивов найти...

Умножить отрицательные элементы столбцов с нечетными номерами на минимальный элемент матрицы
Доброго времени суток,народ;D Помогите пожалуйста решить данную задачу,используя подпрограмму(это...

Дана матрица А(7,4) Вывести все отрицательные элементы этой матрицы. Найти минимальный по модулю элемент
Привет славные форумчани.. Тема программы потоковые файлы... Задача состоит в написание текста на...

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

4
Selot
189 / 125 / 52
Регистрация: 19.01.2010
Сообщений: 511
Завершенные тесты: 2
11.09.2016, 18:59 2
Изначально минимальным лучше брать первый элемент массива, т.к мало ли в массиве будут числа от 10 до 100, тогда 0 так и останется минимальным, хотя в массиве такого числа нет.
Цитата Сообщение от OlegSTEP Посмотреть сообщение
Это наверное как то по индексу нужно?
да. Там, где запоминаешь минимальное число, запоминай и его индекс (напр.как min_index). Потом делай цикл от нуля до min_index, в котором сравнивай элементы массива с нулем
0
OlegSTEP
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 12
Завершенные тесты: 1
11.09.2016, 19:07  [ТС] 3
У меня почему то умножать не хочет.
А вот сумму узнать так легко.
Как то так сделал:
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
void func(int mas[], int size)
{
    int min=0;
    int minI;
    int sum=0;
    for (int i=0; i<size; i++)
    {
        if(mas[i]<min)
        {
            min=mas[i];
            minI=i;
        }
    }
    for (int i=0; i<minI; i++)
    {
            if(mas[i]<0)
                sum+=mas[i];
    }
    cout<<"Минимальны элемент массива: "<<min<<endl;
    cout<<"Индекс минимального элемента: "<<minI+1<<endl; // +1 потому что считает с 0
    cout<<"Сумма всех отрицательных элементов левее от минимального: "<<sum<<endl;
 
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time (NULL));
 
    const int size = 15;
    int mas[size];
    for (int i=0; i<size; i++)
    {
        mas[i] = rand() % 99 - 50;
        cout<<mas[i]<<" ";
    }
    cout<<endl;
    func(mas,size);
    
    
 
    system("pause");
    return 0;
}
0
GbaLog-
Любитель чаепитий
3203 / 1504 / 472
Регистрация: 24.08.2014
Сообщений: 5,274
Записей в блоге: 1
Завершенные тесты: 2
11.09.2016, 19:31 4
Selot, А зачем запоминать минимальный элемент массива И индекс, можно просто индекс запомнить.
А потом, условие внимательно прочтите, человеку нужно минимальное отрицательное, поэтому можно смело min приравнять к 0.

OlegSTEP,
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
#include <algorithm>
#include <array>
#include <iostream>
#include <clocale>
#include <random>
#include <ctime>
///////////////////////////////////////////////////////////
int main()
{
    std::array<int, 15> arr;
    std::mt19937 gen( std::time( nullptr ) );
    std::uniform_int_distribution<> dist( -100, 100 );
    for( auto& i : arr )
    {
        i = dist( gen );
        std::cout << i << std::endl;
    }
    
    auto min = std::min_element( arr.begin(), arr.end());
              
    std::cout << "Min: " << *min << std::endl;
    
    std::for_each( 
        arr.begin(), 
        min,
        [&min] ( int& _a )
        {
            if( _a < 0 )
            {
                _a *= *min;
            }
        } 
    );
    
    for( const auto& i : arr )
    {
        std::cout << i << std::endl;
    }
}
0
Selot
189 / 125 / 52
Регистрация: 19.01.2010
Сообщений: 511
Завершенные тесты: 2
11.09.2016, 19:40 5
как я понял из задания:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
cout << "исходный массив до minI-элемента:" << endl;
for(int i = 0; i < minI; ++i)
     cout << mas[i] << "  ";
 
for(int i = 0; i < minI; ++i)
{
     if(mas[i] < 0)
          mas[i] *= min;
}
 
cout << "исходный массив до minI-элемента после умножения:" << endl;
for(int i = 0; i < minI; ++i)
     cout << mas[i] << "  ";
Добавлено через 1 минуту
Цитата Сообщение от GbaLog- Посмотреть сообщение
А потом, условие внимательно прочтите, человеку нужно минимальное отрицательное, поэтому можно смело min приравнять к 0.
Да, не внимательно прочел
0
11.09.2016, 19:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2016, 19:40

Найти столбец содержащий минимальный элемент. Умножить элементы данного столбца на максимальный элемент
30. В матрице А(8,8) найти столбец содержащий минимальный элемент. Умножить элементы данного ...

Все элементы массива после минимального умножить на минимальный
все элементы массива А=(а1,а2...аn), слейдущие за элементом,которые равны min(a1,a2,...an) ,...

В матрице все элементы, стоящие выше максимального элемента, заменить на минимальный элемент
Помогите решить задачу!!!! В массиве все элементы, стоящие выше максимального элемента, заменить...


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

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

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