Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 05.11.2013
Сообщений: 23

Занулить элементы в матрице между min и max

11.01.2014, 20:52. Показов 3532. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
сообственно нужно написать функцию которая будет занулять элементы между минимальным и максимальным
ну я смог найти места минимального и максимального элемента
но как занулить все между ними ?
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <iostream>
#include <time.h>
using namespace std;
 
void RandMat(int **matrix, int n, int m)
{
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++)
        {
            matrix[i][j]=rand()%100;
        }
    }
}
void output(int *mas, int n)
{
    cout<<endl<<endl;
    for(int i=0;i<n;i++)
        cout<<mas[i]<<" ";
    cout<<endl;
    
}
void output(int **matrix, int n, int m)
{
    cout<<endl<<endl;
    for(int i=0;i<n;i++, cout<<endl)
        for(int j=0;j<m;j++)
            cout<<matrix[i][j]<<" ";
    cout<<endl;
    
}
 
void findMin(int **matrix, int n, int m)
{
    
    
    int min =0;
    int max =0;
    int imin =-1;
    int jmin =-1;
    int imax =-1;
    int jmax =-1;
    min = matrix[0][0];
    max = matrix[0][0];
    
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (matrix[i][j] <= min)
            {
                min = matrix[i][j];
                imin = i;
                jmin = j;
            }
            if (matrix[i][j] >= max)
            {
                max = matrix[i][j];
                imax = i;
                jmax = j;
                
            }
        }
    }
    cout << "min = " << min << " pos = " << imin << " " << jmin  << endl << "max = " << max << " pos = " << imax << " " << jmax<< endl;
    
    for (int i=matrix[imin][jmin]; i<matrix[imax][jmax]; i++) // чую чтото неладное тут
        for (int j=matrix[imin][jmin]; j<matrix[imax][jmax]; j++)
    {
        matrix[i][j]=0;
        cout<<matrix[i][j]<<'\t';
    }
}
 
int findMax(int *mass, int n)
{
    int max=mass[0];
    for(int i=0;i<n;i++)
        if(max<mass[i])
            max=mass[i];
    return max;
}
 
 
 
int main()
{
    setlocale(0,"rus");
    srand(time(NULL));
    int m,n;
    cout<<"Введите кол-во строк: ";
    cin>>m;
    cout<<"Введите кол-во столбцов: ";
    cin>>n;
    int **matrix = new int*[n];
    for(int i=0;i<n;i++)
        matrix[i] = new int[m];
 
    RandMat(matrix, n,m);
    output(matrix, n,m);
    findMin(matrix, n,m);
    
    
    for(int i=0;i<n;i++)
        delete [] matrix[i];
    delete [] matrix;
    cin.get();
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2014, 20:52
Ответы с готовыми решениями:

В двумерном массиве в каждой строке занулить элементы стоящие между max и min(через подпрограммы)
Ввести двумерный массив L(M,N) (N&lt;=10, M&lt;=15) и выдать его на печать в виде таблицы. В каждой строке массива элементы, стоящие между...

Найти max и min элементы массива y и сформировать массив z из элементов массива y, находящихся между max и min y. Записать массив z в обратном порядке
Дан массив Х{80 элементов}. Вычислить {y}_{i}=sin\sqrt{{x}_{i}}+{cos}^{2}{{x}_{1}}^{2} Найти max и min элементы массива y и...

Расстояние между max и min в матрице
Народ, составил прогу по вычислению максимума и минимума в матрице. Осталось найти расстояние между этими же максимумом и минимумом. Как...

11
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
11.01.2014, 20:53
Цитата Сообщение от stray911 Посмотреть сообщение
ну я смог найти места минимального и максимального элемента
но как занулить все между ними ?
Что значит "между ними в матрице"? Это значит занулить строки между ними? Столбцы? Подматрицу? Или что?
0
1 / 1 / 0
Регистрация: 05.11.2013
Сообщений: 23
11.01.2014, 20:54  [ТС]
Цитата Сообщение от Dani Посмотреть сообщение
Что значит "между ними в матрице"? Это значит занулить строки между ними? Столбцы? Подматрицу? Или что?
занулить все элементы между ними
вот как взучит задание
2. Створити функцію , яка у масиві обнуляє елементи, що знаходяться між максимумом та мінімумом.
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
11.01.2014, 20:56
Цитата Сообщение от stray911 Посмотреть сообщение
занулить все элементы между ними
вот как взучит задание
Все элементы между ними - это какие?
0
1 / 1 / 0
Регистрация: 05.11.2013
Сообщений: 23
11.01.2014, 20:57  [ТС]
Цитата Сообщение от Dani Посмотреть сообщение
Все элементы между ними - это какие?
ну к примеру матрица

7 4 5
6 8 5
7 6 9

должно быть

7 4 0
0 0 0
0 0 9
0
 Аватар для Arkaniy
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
11.01.2014, 20:57
Я так подозреваю, что речь идет об одномерном массиве.
0
1 / 1 / 0
Регистрация: 05.11.2013
Сообщений: 23
11.01.2014, 20:59  [ТС]
Цитата Сообщение от Arkaniy Посмотреть сообщение
Я так подозреваю, что речь идет об одномерном массиве.
я так думаю что, да
передалать в одномерный?
но вроде как суть от этого не меняется
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
11.01.2014, 21:04
Цитата Сообщение от stray911 Посмотреть сообщение
но вроде как суть от этого не меняется
всё поменяется. Тогда можно легко заменить на 0 все элементы между min и max так:
(пусть a - позиция минимума, b - позиция максимума):
C++
1
for(int i=std::min(a, b)+1; i<std::max(a, b); ++i) array[i] = 0;
0
 Аватар для Arkaniy
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
11.01.2014, 21:06
В двумерном массиве понятие между тем-то и тем-то можно растолковать по разному. В одномерном же всё предельно ясно.
В коде функция findMin расписана раза в 4 больше, чем findMах. Вот тут что-то неладное.

При нахождении минимума достаточно объявить 1 переменную min и инициализировать её значением хотя бы на 1 больше от максимально возможного. Дальше в цикле сравнивать с каждым элементом.
С максимумом тоже самое, только всё наоборот.
0
1 / 1 / 0
Регистрация: 05.11.2013
Сообщений: 23
11.01.2014, 21:06  [ТС]
Цитата Сообщение от Dani Посмотреть сообщение
всё поменяется. Тогда можно легко заменить на 0 все элементы между min и max так:
(пусть a - позиция минимума, b - позиция максимума):
C++
1
for(int i=std::min(a, b)+1; i<std::max(a, b); ++i) array[i] = 0;
можешь написать фунцию которая бы это сделала?
0
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
11.01.2014, 21:07
Цитата Сообщение от stray911 Посмотреть сообщение
ну я смог найти места минимального и максимального элемента
Цитата Сообщение от stray911 Посмотреть сообщение
можешь написать фунцию которая бы это сделала?
Это не должно составить тебе труда.
0
1 / 1 / 0
Регистрация: 05.11.2013
Сообщений: 23
11.01.2014, 21:40  [ТС]
Цитата Сообщение от Arkaniy Посмотреть сообщение
В двумерном массиве понятие между тем-то и тем-то можно растолковать по разному. В одномерном же всё предельно ясно.
В коде функция findMin расписана раза в 4 больше, чем findMах. Вот тут что-то неладное.

При нахождении минимума достаточно объявить 1 переменную min и инициализировать её значением хотя бы на 1 больше от максимально возможного. Дальше в цикле сравнивать с каждым элементом.
С максимумом тоже самое, только всё наоборот.
то названия старые остались, findMin из изначальной вообще ничего не осталось, я в ней пытался написать нахождение мин макс и зануление сразу

Добавлено через 53 секунды
Цитата Сообщение от Dani Посмотреть сообщение
Это не должно составить тебе труда.
спасибо немного прояснилось)

Добавлено через 19 минут
Цитата Сообщение от Dani Посмотреть сообщение
Это не должно составить тебе труда.
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
49
50
51
52
53
54
#include <iostream>
//#include <conio.h>
using namespace std;
 
void function1(int *mas, int n)
{
 
    
  
    int imin=0;
    for(int i=1;i<n;i++)
    {
        if (mas[imin]>mas[i])
            imin=i;
    }
    cout<<"min="<<mas[imin]<<"\tindex="<<imin<<endl;
    
    int imax=0;
    for(int i=1;i<n;i++)
    {
        if (mas[imax]<mas[i])
            imax=i;
    }
    cout<<"max="<<mas[imax]<<"\tindex="<<imax<<endl;
    
    if (imin<imax)
    for(int i=mas[imin]+1; i<mas[imax]; ++i)
    {
        mas[i] = 0;
        cout<<mas[i];
    }
}
 
int main()
{
   srand(time(NULL));
    const int n=5;
    int mas[n];
    
    for(int i=0;i<n;i++)
    {
        mas[i]=rand()%15;
        cout<<mas[i]<<" ";
    }
    cout<<endl;
 
    
 
    function1(mas, n);
    
    
    cin.get();
    return 0;
}
спасай не работает точнее не делает что нужно

Добавлено через 12 минут
все понял
просто не там был cout
вынес из цикда, все впорядке
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2014, 21:40
Помогаю со студенческими работами здесь

Найти max и min, если min левее max, то среднее арифметическое между ними
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() { int n,a; int...

Поменять местами в матрице строки, содержащие MIN и MAX элементы
В данной действительной матрице размера m x n поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей...

Найти max и min элементы в массиве и номер элемента, близкого к среднему арифметическому min и max.
Привет всем! Очень прошу помочь в решении задачи на определение характеристик одномерного массива. Задача такова: Дана последовательность...

Элементы между min & max
В массиве найти минимальный и максимальный элемент. В промежутке между ними элементы записать в обратном порядке (включая min &amp; max)

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru