Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

массив min - C++

14.11.2011, 11:43. Просмотров 573. Ответов 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?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 11:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массив min (C++):

Массив: Получить min(a1;a2;a3)+min(a4;a5;a6)+min(a7;a8;a9)+min(a10;a11;a12) . - C++
Заполнить массив а1,а2,а3...а12 случайными числами от 0 до 20. Получить min(a1;a2;a3)+min(a4;a5;a6)+min(a7;a8;a9)+min(a10;a11;a12) .

Даны действительные числа 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,b,c. Вычислите (min(a+c, a+b)+min(a-b,b-c))/(1-min(ab+c,1.2) - C++
На С++.

Дан одномерный массив 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)

Даны целые числа а, b, с. Вычислить в-сумму у = min (a, b + c) + max (ac, b)-min (a2, c) - C++
Даны целые числа а, b, с. Вычислить в-сумму у = min (a, b + c) + max (ac, b)-min (a2, c). Как эту программу реализовать в код?

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

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

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

Добавлено через 48 секунд
Цитата Сообщение от Dar101 Посмотреть сообщение
У вас min изначально 0. А элементы матрицы все положительные.
Поэтому элемент меньше min не встречается.
А где именно показывает что Min присвоено 0???
0
Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 11:57 #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 неинициализированные значения.
У меня компилятор вообще ругается на такое.
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
14.11.2011, 11:59 #9
или присвойте
C++
1
min = INT_MAX;
0
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
14.11.2011, 12:01 #10
Цитата Сообщение от GoldDragon Посмотреть сообщение
А где именно показывает что Min присвоено 0???
C
1
int min=a[0][0];
Элемент до этого не задан следовательно равен нулю.
Сначало введите a[0][0], а потом делайте вычисления.
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
14.11.2011, 12:03 #11
Цитата Сообщение от Serejke_qq Посмотреть сообщение
Элемент до этого не задан следовательно равен нулю.
Вот это далеко не факт.
0
soon
14.11.2011, 12:03
  #12

Не по теме:

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

0
Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
14.11.2011, 12:04 #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] стало единицей.

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

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

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

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

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


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

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

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