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

Найти минимальный элемент в матрице случайных целых чисел

12.06.2015, 15:05. Показов 2137. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите ! Нужно Найти минимальный элемент в матрице случайных целых чисел А размерности N х M и вычесть его значение из суммы элементов строки, где он находится.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2015, 15:05
Ответы с готовыми решениями:

Нужно найти минимальный элемент в матрице случайных целых чисел А размерности N х M и вычесть его значение из
Нужно найти минимальный элемент в матрице случайных целых чисел А размерности N х M и вычесть его значение из суммы элементов строки, где...

Найти минимальный элемент в матрице случайных чисел
Задание: найти минимальный элемент в матрице случайных чисел А размерности N x M и вычесть его значение из элементов строки, где он...

Найти минимальный элемент в последовательности целых чисел
Дана последовательность из n целых чисел. Найти минимальный элемент в этой последовательности. Как найти min, не используя при этом...

13
0 / 0 / 0
Регистрация: 12.06.2015
Сообщений: 2
12.06.2015, 15:12
Для того чтобы этим вычислением помочь,необходимо знать цель ,от цели зависит стоимость
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 12
12.06.2015, 15:30  [ТС]
Какую цель ? Если вы про M и N, то элементы задаются рандом

Добавлено через 13 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
using namespace std;
 
int main()
{       SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        setlocale(LC_ALL, "rus");
int A,i,j,M,N,*Mass;
   cout<<"Введите колличество элементов массива B ";
cin>>M;
cout<<"Введите колличество элементов массива C ";
cin>>N;
  Mass = new int [M][N];
Добавлено через 35 секунд
Ругается на последнюю строчку Объясните ??
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
12.06.2015, 16:07
Лучший ответ Сообщение было отмечено IL_2 как решение

Решение

Цитата Сообщение от IL_2 Посмотреть сообщение
Mass = new int [M][N];
Одномерный массив *Mas,
Двумерный **Mas
Трехмерный ***Mas
и т.д.

У вас должен быть двумерный.
При этом ваш *Mas - это не весь массив полностью, а только указатель на его начало. Сейчас это вообще просто указатель, чтобы сделать из этого массив, нужно выделять память с помощью new
Двумерный массив, соответственно будет массивом указателей на начало разных массивов. Сначала создаете одномерный массив, а в нем создаете несколько одномерных (все с выделением памяти).

И после обработки высвобождать память в обратном выделению памяти порядке.

Просили объяснить, получили объяснение.

Добавлено через 1 минуту
C++
1
2
Mass = new int * [N];
for (int i=0;i<N;i++) Mass[i]=new int[M];
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 12
13.06.2015, 11:24  [ТС]
Задание в шапке. Написал так код 1/2 рабочий (и то не рандом выберает значения ,хотя это не играет роли) . Помогите !
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
#include<iostream>
#include<math.h>
#include<windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
using namespace std;
 
int main()
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        setlocale(LC_ALL, "rus");
int i,j,N,M,a[20][20],sum,jmin,imin,t;
int min;
cout<<"Количество строк N= "; //ввод количества строк
cin>>N;
cout<<"Количество столбцов M= "; //ввод количества столбцов
cin>>M;
cout<<"Вввод матрицы  A  ()\n";
 
//цикл по переменной i, в которой перебираем строки матрицы
for (i=0; i<N; i++)
 
//цикл по переменной j, в котором перебираем элементы внутри строки
for (j=0; j<M; j++)
{
    cout<<"Введите "<<i<<"  строку и " <<   j<<"  столбец"<<" " ;
 cin>>a[i][j]; //ввод очередного элемента матрицы
}
cout<<"Вывод матрицы А: \n";
for (i=0; i<N; i++)
{
//цикл по переменной i, в котором перебираем строки матрицы
for (j=0; j<M; j++)
cout<<a[i][j]<<"\t"; //вывод очередного элемента матрицы
cout<<endl; //переход на новую строку после вывода всех элементов строки
}
 
// делаю поиск минимального значения
min=a[0][0];
for (i=0;i<N;i++)
   for (j=0; j<M; j++)
  {
      if (a[i][j]<min)
      {
      min=a[i][j];
      imin = i;
      jmin = j;
 
      }
  }
  for(i=imin;;)//от сюда прекращает работать программа 
  {
     for(j=0;j<M;j++)
        sum+=a[i][j];
  }
  t=sum-min;
cout<<min<<imin<<jmin<<t<<'\n';
system("pause");
return 0;
}
Вот написал код, но не работает
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
13.06.2015, 11:29
Цитата Сообщение от IL_2 Посмотреть сообщение
(и то не рандом выберает значения
было бы странно если бы рандом
Цитата Сообщение от IL_2 Посмотреть сообщение
cin>>a[i][j]; //ввод очередного элемента матрицы
Цитата Сообщение от IL_2 Посмотреть сообщение
for(i=imin;//от сюда прекращает работать программа
не прекращает а зацикливается
где условия выхода из цикла?
и зачем здесь этот цикл нужен?
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 12
13.06.2015, 11:33  [ТС]
Чтобы сложить все элементы строки .....

Добавлено через 46 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение
и зачем здесь этот цикл нужен?
Чтобы сложить элементы строки...
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
13.06.2015, 11:35
Лучший ответ Сообщение было отмечено IL_2 как решение

Решение

Цитата Сообщение от IL_2 Посмотреть сообщение
Чтобы сложить элементы строки...
достаточно вот этого цикла
Цитата Сообщение от IL_2 Посмотреть сообщение
for(j=0;j<M;j++)
а зачем
Цитата Сообщение от IL_2 Посмотреть сообщение
for(i=imin;//от сюда прекращает работать программа
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 12
13.06.2015, 11:50  [ТС]
Я понимаю тема избита, но вот не знаю как сложить строчку а потом из суммы вычесть минимальный найденное число

Добавлено через 13 минут
Спасибо ! Сам ленюсь Сам и разберусь )))
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 12
17.06.2015, 21:32  [ТС]
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
#include <clocale>
#include <cstdlib>
#include<math.h>
#include <ctime>
#include <iostream>
#include <windows.h>
 
/// заполнение матрицы случайными числами из диапазона [0, 99]
void FillRandomNumbers(int **matrix, const size_t rows, const size_t columns)
{
    srand(time(0)); // инициализируем ПГСЧ
 
    for (size_t row=0; row < rows; row++)
        for (size_t column=0; column < columns; column++)
            matrix[row][column] = rand() % 100; // присваиваем СЧ
}
 
/// вывод матрицы на экран
void Print(int **matrix, const size_t rows, const size_t columns)
{
    for (size_t row=0; row < rows; row++)
    {
        for (size_t column=0; column < columns; column++)
            std::cout << matrix[row][column] << " "; // выводим элемент
        std::cout << std::endl; // перевод строки
    }
}
 
/// пример обработки матрицы - подсчет суммы всех элементов
int Sum(int **matrix, const size_t rows, const size_t columns)
{
    int sum = 0; // счётчик суммы
    for (size_t row=0; row < rows; row++)
        for (size_t column=0; column < columns; column++)
            sum += matrix[row][column];
 
    return sum; // вернуть результат
}
int min (int **matrix, const size_t rows, const size_t columns)
{
        int min = 0;
   for (size_t row=0; row < rows; row++)
   for (size_t column=0; column < columns; column++)
 
  {
      if (matrix[rows][column]<min) //условие по которому опредеим неименьшее число из всего двумерного массива
     {
        min=matrix[rows][column];// Минимальное число
     }
 
  }
return min;
}
// ...
// сюда вставить все дополнительные функции которые напишете
// ...
 
using namespace std;
int main()
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        setlocale(LC_ALL, "rus");
 
 
    size_t rows, columns; // строки и столбцы
 
    // вводим размерность матрицы
    std::cout << "Введите количество строк матрицы: ";
    std::cin >> rows;
    std::cout << "Введите количество столбцов матрицы: ";
    std::cin >> columns;
 
    // выделяем память под матрицу
    int **matrix = new int*[rows];
    for (size_t row=0; row < rows; row++)
        matrix[row] = new int[columns];
 
    // заполнение случайными числами
    FillRandomNumbers(matrix, rows, columns);
 
    // вывод на экран
    std::cout << "\nМатрица:\n";
    Print(matrix, rows, columns);
 
    // обработка матрицы
    std::cout << "\nСумма всех элементов матрицы равна " << Sum(matrix, rows, columns) << std::endl;
    std::cout << "\nМинимальный  элемент в матрице " << min (matrix, rows, columns) << std::endl;
 
    // освобождаем память, выделенную под матрицу
    // освобождение идёт в обратном порядке от выделения
    for (size_t row=0; row < rows; row++)
        delete[] matrix[row];
    delete[] matrix;
 
 
    // ждём нажатия клавиши перед выходом из приложения
    system("pause");
    return 0 ;
}
Вот код а в нём ошибка . Функция min не выполняется, выдает ошибку . В чем ошибка ?
P.S. Помогите ! тут еще надобно строчку в которой стоит самое маленькое число (min) всего сложить.
0
7 / 7 / 10
Регистрация: 29.05.2015
Сообщений: 35
18.06.2015, 08:00
Цитата Сообщение от IL_2 Посмотреть сообщение
int min = 0;
* *for (size_t row=0; row < rows; row++)
* *for (size_t column=0; column < columns; column++)
{
* * * if (matrix[rows][column]<min) //условие по которому опредеим неименьшее число из всего двумерного массива
* * *{
* * * * min=matrix[rows][column];// Минимальное число
* * *}
}
min = 0 - Сравниваете с нулем. Если элементы в матрице только положительные, то в if, цикл даже не зайдет.

Добавлено через 2 часа 27 минут
Попробуйте присвоить переменной min первый элемент матрицы.
C++
1
int min = matrix[0][0];
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 12
18.06.2015, 09:40  [ТС]
C++ (Qt)
1
int min = matrix[0][0];
попробывал , но по прежнему программа прекращает свою работу после того как сосчитает сумму и переходит к нахождению минимума
0
7 / 7 / 10
Регистрация: 29.05.2015
Сообщений: 35
18.06.2015, 10:30
Лучший ответ Сообщение было отмечено IL_2 как решение

Решение

Нашел ошибку в функции int - у вас стоит:
C++
1
2
3
4
5
6
7
8
      for (size_t row=0; row < rows; row++)
      for (size_t column=0; column < columns; column++)
      {
         if (matrix[rows][column]<min)
         {
           min=matrix[rows][column];// Минимальное число
         }
      }
Замените
C++
1
matrix[rows][column]
на
C++
1
matrix[row][column]
очень плохо читаемый переменные, надо быть предельно внимательным
1
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 12
18.06.2015, 11:02  [ТС]
Спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2015, 11:02
Помогаю со студенческими работами здесь

Найти минимальный элемент в массиве целых чисел
Задача 9. Написать программу, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел.

Создать массив из 20-ти положительных случайных чисел и найти минимальный элемент среди элементов кратных 3
Создать массив из 20-ти положительных случайных чисел и найти минимальный элемент среди элементов кратных 3. Решила задачу так, нужно...

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

Задача на массив, В Массиве целых чисел найти минимальный элемент.
В Массиве целых чисел найти минимальный элемент. *В массиве x=(x1, x2,...,xn) определить количество элементов,меньших среднего...

Задать файл из целых чисел. Найти минимальный элемент файла
1. Задать файл из целых чисел. Найти минимальный элемент файла. 2. Увеличить на 5 каждый элемент файла, кратный числу 4. 3. Найти...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru