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

10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем - C++

Восстановить пароль Регистрация
 
FantazerMasha
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 18
10.11.2016, 15:07     10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем #1
В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем, а максимальный увеличить в десять раз.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2016, 15:07     10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем
Посмотрите здесь:

C++ Найти в массиве максимальный элемент и заменить все вышестоящие на минимальный из последней строки
В двумерном массиве заменить все четные элементы на минимальный элемент матрицы C++
В массиве заменить отрицательные элементы ниже главной диагонали на минимальный элемент строки C++
C++ В произвольно заданном одномерном массиве заменить первый отрицательный элемент нулем
В четных столбцах матрицы заменить минимальный элемент нулем C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
10.11.2016, 15:21     10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
 
int main()
{
    std::array<int, 14> a;
    auto print_a = [&a]
    {
        std::copy(a.cbegin(), a.cend(), std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
    };
    std::iota(a.begin(), a.end(), 1);
    print_a();
    auto p = std::minmax_element(a.begin(), a.end());
    *p.first = 0;
    *p.second *= 10;
    print_a();
}
FantazerMasha
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 18
10.11.2016, 15:42  [ТС]     10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем #3
а не могли бы вы написать самым-самым обычным способом? а то этого всего я ещё не понимаю(
Milleniium
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 3
10.11.2016, 16:38     10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем #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
34
35
36
37
38
39
#include <iostream>
#include <ctime> //библиотека для рандома
using namespace std;
 
void main()
{
    srand(time(0));
    const int size = 14; //количество елементов
    int a[size]; 
    for (int i = 0; i < size; i++) //проходимся по каждому елементу масива
    {
        a[i] = rand()% 89 + 10; //каждый елемент рандомим
        cout << a[i] << " "; //выводим на екран
    }
    cout << endl;
    int min = 100, max = 0; //создаем 2 переменные для того, что бы узнать какое число будет максимальным и минильным
    //как правило минимальное число нужно поставить большим, а максимальное маленьким
    int imax = 0, imin = 0; // 2 переменные, что будут узнавать какой именно елемент максимальный в итоге получился, а какой минимальный
    for (int i = 0; i < size; i++) //проходимся по циклу елементов
    {
        if (a[i] > max) //если каждый елемент больше мах, то мах становиться етим елементом
        {
            max = a[i];
            imax = i;   //сохраняем номер позиции максимального елемента
        }   
        if (a[i] < min) //так же но для минимального
        {
            min = a[i];
            imin = i;   //так же для минимального
        }   
    }
    a[imax] *= 10; //меняем число на позиции максимального елемента на помноженное на 10
    a[imin] = 0; //для минимального делаем 0
    for (int i = 0; i < size; i++) //вывдоим измененный масив
    {
        cout << a[i] << " ";
    }
    cout << endl;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
10.11.2016, 17:00     10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем #5
Цитата Сообщение от Milleniium Посмотреть сообщение
//библиотека для рандома
1. Это не библиотека, а заголовочный файл, который входит в стандартную библиотеку.
2. Заголовочный файл ctime содержит только функции для работы со временем и понятия не имеет ничего о "рандоме"
3. Сишный заголовочный файл для псведо генератора СЧ это cstdlib.
4. Плюсовый генератор СЧ расположен в заголовочном файле random
5. void main не соответствует стандарту, пишите int.
6. Слово "экран" пишется через э
7. Первую итерацию цикла можно пропустить
8. Не за чем дублировать информацию - поиск мин. и макс. элементов можно осуществлять, сравнивая элементы под индексом imin и imax. Переменные max и min лишние
9. Поиск можно осуществлять в том же цикле, что и вывод на экран (любой из)
Milleniium
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 3
10.11.2016, 17:46     10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем #6
5. всегда писал void, мне не мешает
6. я не знаю русский язык, поэтому пишу, как получается
7. "Кода больше, но надеюсь будет понятнее"
8. "Кода больше, но надеюсь будет понятнее"
9. "Кода больше, но надеюсь будет понятнее"

Я попытался объяснить человеку на примере.
Yandex
Объявления
10.11.2016, 17:46     10. В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем
Ответ Создать тему
Опции темы

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