0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 32
1

Ошибка при нахождении минимального элемента массива

18.02.2015, 22:52. Показов 1394. Ответов 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
40
41
42
43
44
45
46
47
#include <iostream>
#include<time.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    const int m = 2;
    const int n = 4;
    int matr[m][n];
    int max=matr[0][0];
    int min=matr[0][0];
 
    for (int i = 0; i < m; i++)
    {
        int maxs = matr[i][0];
        int mins = matr[i][0];
        for (int j = 0; j < n; j++)
        {
            matr[i][j] = -5+rand() % 20;
            cout << matr[i][j] << "\t";
            
            if (matr[i][j]<min) {
                min = matr[i][j];
            }
            if (matr[i][j] > max)
            {
                max = matr[i][j];
                
            }
            if (matr[i][j]<mins)
            {
                mins = matr[i][j];
            }
            if (matr[i][j]>maxs)
            {
                maxs = matr[i][j];
            }
            
        }
        cout << "Макс-й элемент " << i << " строки= " << maxs  <<", мин-й элемент= " << mins << endl;
        cout << endl;
    }
    cout << "Максимальный элемент массива= " << max << endl;
    cout << "Минимальный элемент массива= " << min << endl;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2015, 22:52
Ответы с готовыми решениями:

Ошибка в программе при нахождении максимального и минимального значения
Добрый день, что не так с моей программкой, скажите пожалуйста? Нет возможности что то решить и...

Не считать пустые элементы массива при нахождении минимального
Привет! Помогите разобраться, пожалуйста. В условии задачи сказано составить функцию, которая будет...

Ошибка при нахождении элемента в массиве
Необходимо разработать консольное приложение для ввода с клавиатуры массива строк и поиска среди...

Проблема в нахождении минимального элемента среди максимальных элементов столбцов матрицы
Здравствуйте, есть проблема. Я уже несколько часов пытаюсь докопаться до истины, но чувствую, что...

4
Неэпический
17815 / 10586 / 2044
Регистрация: 27.09.2012
Сообщений: 26,627
Записей в блоге: 1
18.02.2015, 23:59 2
У Вас элементы матрицы не инициализированы, а Вы "берете" их значения
0
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 32
19.02.2015, 00:11  [ТС] 3
я ставил
int maxs = matr[i][0];
int mins = matr[i][0];
и после
matr[i][j] = -5+rand() % 20;

но результат тот же, если я вас правильно понял....
и тогда я проверял пошагово, и переменным присваивается значение указанных элементов, но при выходе из цикла в них появляется мусор, т.е или стирается присвоенное значение или компилятор "забывает", вообще не пойму почему
0
1 / 1 / 3
Регистрация: 19.02.2015
Сообщений: 66
19.02.2015, 15:49 4
Лучший ответ Сообщение было отмечено u-geen как решение

Решение

Так как
C++
1
2
int max=matr[0][0];
    int min=matr[0][0];
они принимаю одно и тоже значение, оно и выводит вам такой бред. Что min = Null(-858..) и max = Null(-858..)
Да, программа выведет вам правильный максимум, но минимум останется такой же, так как меньше -858.. нету.
Лучше сделайте так
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
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    const int m = 2;
    const int n = 4;
    int matr[m][n];
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            matr[i][j] = -5+rand() % 20;
            cout << matr[i][j] << "\t";      
        }
    }
        int max = matr[0][0];
        int min = matr[0][0]; 
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (matr[i][j]<min) {
                min = matr[i][j];
            }
            if (matr[i][j] > max)
            {
                max = matr[i][j];     
            }
        }
    }
    cout << "Максимальный элемент массива= " << max << endl;
    cout << "Минимальный элемент массива= " << min << endl;
system("PAUSE");
 
}
0
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 32
19.02.2015, 16:31  [ТС] 5
Все гениальное просто!Спасибо огромное!!! Все работает!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2015, 16:31
Помогаю со студенческими работами здесь

Ошибка в поиске минимального элемента массива
program minmas; uses crt; const a=30; var arr:array of integer; i,min,n:integer; begin...

В чем заключается ошибка? Поиск минимального элемента двухмерного массива
Здравствуйте! Есть массив 5 на 3( матрица), нужно найти значение минимальное, мне выводит ноль, не...

Вычислить произведение P = Хmin*Ymin минимального элемента xmin = min{xi} массива xi и минимального элемента ymin = min{yi} массива yi
Вычислить произведение P = Хmin*Ymin минимального элемента xmin = min{xi} массива xi и минимального...

Найти номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента
11.109. Дан массив. Определить: а) максимальный элемент массива и элемент, являющийся максимальным...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru