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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
#1

массив min - C++

14.11.2011, 11:43. Просмотров 554. Ответов 18
Метки нет (Все метки)

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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
int main()
{
randomize();
    int a[5][5];
    int b=0;
    int max=a[0][0];
    int min=a[0][0];
    for(int i=0;i<5;i++)
    {
        for(int j=0;j<5;j++)
        {
            a[i][j]=random(50);
            cout<<a[i][j]<<" ";
            if(a[i][j]==9) b++;
            if(a[i][j]>max) max=a[i][j];
            if(a[i][j]<min) min=a[i][j];
        }
        cout<<endl;
    }
    cout<<endl<<endl<<b;
    cout<<endl<<endl<<max;
    cout<<endl<<endl<<min;
    getch();
}
обясните почему в этом коде MIN всегда показывает 0?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 11:43     массив min
Посмотрите здесь:

Даны натуральные цифры a,b,c. Вычислите (min(a+c, a+b)+min(a-b,b-c))/(1-min(ab+c,1.2) - C++
На С++.

Даны действительные числа a, b, c. Получить r = (min (a, a + b)+min(a,b+c)/1+min(a+bc,b) - C++
Для решении использовать функцию! Даны действительные числа a, b, c. Получить r = (min (a, a + b)+min(a,b+c))/1+min(a+bc,b)

Дан одномерный массив A[N]. Найти max(a2,a4,...a2*k)+min(a1,a3,...,a2*k+1 - C++
Дан одномерный массив A. Найти max(a2,a4,...a2*k)+min(a1,a3,...,a2*k+1=-O)

Описать ф-ию min(x) для определения min элемента линейного массива - C++
Описать ф-ию min(x) для определения min элемента линейного массива X введя вспомогательную рекурсивную ф-ю min(k), находящую минимум...

Замена нахождения min среди двумерного массива, на нахождение min в каждой строке - C++
Помогите пожалуйста изменить программу так чтобы вместо того чтобы находился min среди двумерного массива целых чисел, находился min в...

Цикл для вывода min чисел в одномерный массив - C++
Цикл для вывода min чисел в одномерный массив

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
14.11.2011, 11:51     массив min #2
Потому что
C++
1
a[i][j]=random(50);
генерирует числа из [ 0, 49 ]. А так как у Вас в матрице будет 25 элементов, то хотя бы один ноль точно встретится.

Добавлено через 1 минуту
лучше напишите так:
C++
1
a [ i ][ j ] = rand() % 50 + rand() % 12 + 5;
например...
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
14.11.2011, 11:53     массив min #3
Цитата Сообщение от GoldDragon Посмотреть сообщение
int min=a[0][0];
Потому что вы min приравняли изначально к неизвестной шняге.
C++
1
int min=60;
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
14.11.2011, 11:55  [ТС]     массив min #4
Отнюдь, вот вам скрин с этим кодом, и где вы там нолик видите??? хотя всё равно показывает MIN = 0, кстати нолик который там есть это показывает сколько раз показывает в матрице встретилось число 9
Миниатюры
массив min  
Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 11:55     массив min #5
У вас min изначально 0. А элементы матрицы все положительные.
Поэтому элемент меньше min не встречается.
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
14.11.2011, 11:55     массив min #6
И ещё, введите сначало нулевой элемент, а потом делайте присваивание..
C++
1
2
3
4
5
        a[0][0] = random(50);
 
        int max=a[0][0];
        int min=a[0][0];
        ...
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
14.11.2011, 11:57  [ТС]     массив min #7
Цитата Сообщение от mimicria Посмотреть сообщение
Потому что вы min приравняли изначально к неизвестной шняге.
Код C++
1
int min=60;
вообще то у меня в задании написано использовать рандум а не менять значения переменных вручную...

Добавлено через 48 секунд
Цитата Сообщение от Dar101 Посмотреть сообщение
У вас min изначально 0. А элементы матрицы все положительные.
Поэтому элемент меньше min не встречается.
А где именно показывает что Min присвоено 0???
Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 11:57     массив min #8
GoldDragon
Перенесите это отдельным циклом в начало перед определением начальных значений min и max:
C++
1
for(int j=0;j<5;j++)a[i][j]=random(50);
Вот это плохо:
C++
1
2
3
4
  int a[5][5];
        int b=0;
        int max=a[0][0];
        int min=a[0][0];
Вы присваиваете min и max неинициализированные значения.
У меня компилятор вообще ругается на такое.
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
14.11.2011, 11:59     массив min #9
или присвойте
C++
1
min = INT_MAX;
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
14.11.2011, 12:01     массив min #10
Цитата Сообщение от GoldDragon Посмотреть сообщение
А где именно показывает что Min присвоено 0???
C
1
int min=a[0][0];
Элемент до этого не задан следовательно равен нулю.
Сначало введите a[0][0], а потом делайте вычисления.
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
14.11.2011, 12:03     массив min #11
Цитата Сообщение от Serejke_qq Посмотреть сообщение
Элемент до этого не задан следовательно равен нулю.
Вот это далеко не факт.
soon
14.11.2011, 12:03
  #12

Не по теме:

Элемент до этого не задан следовательно равен нулю.
Ни фига. Все зависит от компилятора.

Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 12:04     массив min #13
Serejke_qq
Мне кажется это опасный код:
C++
1
2
3
a[0][0] = random(50);
        int max=a[0][0];
        int min=a[0][0];
Например, a[0][0] стало единицей.

А потом после определения элементов массива они все окажутся больше единицы. В таком случае, определение минимума будет неверным.
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
14.11.2011, 12:04     массив min #14
В общем, ТС, алгоритм следующий. Генерируете массив в промежутке [0;49]. Задаете min = 50, max = -1. На каждой итерации цикла сравниваете, если arr[i][j] < min => min = arr[i][j]. Max аналогично. И это я просто обобщил все то, что вам говорят на 2-страницах.
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
14.11.2011, 12:08     массив min #15
Знаю что "Далеко не факт что будет равен нулю" -_- Думал вы поймёте
Цитата Сообщение от Dar101 Посмотреть сообщение
А потом после определения всех элементов массива они все окажутся больше единицы. Тогда определение минимума будет неверным.
Ога.. когда писал, думал об отдельных циклах на ввод и вычисления.. А щас внезапно понял что там всё в одном
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
14.11.2011, 12:30  [ТС]     массив min #16
Ну что Народ что мне делать то???
просто бывает даже там самая маленькая цифра это 2 а он показывает 0, кстати если поставить в рандуме вот так

a[i][j]=random(50);

то он всё норм работает, я вот не могу понять где в этом коде я присвоил переменной 0 хотя такого там нет, а он откуда то его берёт
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
14.11.2011, 12:34     массив min #17
Цитата Сообщение от GoldDragon Посмотреть сообщение
где в этом коде я присвоил переменной 0
Объясняю популярно
C++
1
2
3
4
        int a[5][5]; // объявили массив, он на данный момент заполнен мусором или нулями в зависимости от компилятора
        int b=0;
        int max=a[0][0]; 
        int min=a[0][0]; // и тут бабах, уже мусор или 0 попадает в min
А можно просто:
C++
1
2
        int max=0; 
        int min=60; // рандом всё равно до 50
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
14.11.2011, 12:38     массив min #18
mimicria, извините, можно узнать, какой именно компилятор это делает? Ну в смысле если массив не инициализирован, то неявно инициализирует его нулями.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2011, 13:19     массив min
Еще ссылки по теме:

Дан массив действительных чисел X[N]. Вычислить Y=max (X[i])-min(X[i]). - C++
Здравствуйте форумчане. Уж так случилось что я совсем не дум-дум в строках и массивах. ПРОСЬБА просмотрите задачи и подскажите как их...

Создать класс определяющий 2-мерный массив найти min из max - C++
Данный 2-мерный массив должен состоять из 1-мерных массивов,нужно в столбцах найти мах-ные элементы и из них выбрать минимальный.Не понятна...

Двумерный массив. Поменять местами max и min четных строк - C++
Составить программу на языке C++ для обработки двумерных массивов с использованием указателей и входных и выходных файлов. Дана...

Массив: Найти в каждой строке max и min, поменять их местами. - C++
Вводится квадратная матрица порядка n. Найти в каждой строке max и min, поменять их местами. Помогите пожалуйста )


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

Или воспользуйтесь поиском по форуму:
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
14.11.2011, 13:19  [ТС]     массив min #19
комрилятор XE
Yandex
Объявления
14.11.2011, 13:19     массив min
Ответ Создать тему
Опции темы

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