С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 5

Поиск максимума и минимума в массиве, среди отрицательных чисел

28.11.2015, 21:51. Показов 7327. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти среди отрицательных чисел в массиве, которые делятся на 7, минимальное и максимальное значения и их номера.


Java
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
       
        int max = Q[0];
        int nommax = 0;
        int min = Q[0];
        int nommin = 0;
        int col_neg = 0;
        for (int i = 0; i < Q.length; i++) {
            if (Q[i] < 0 && Q[i] % 7 == 0) {
 
                if (Q[i] < min) {
                    min = Q[i];
                    nommin = i;
                }
                if (Q[i] > max) {
                    max = Q[i];
                    nommax = i;
                }
                col_neg++;
            }
 
        }
 
        if (col_neg > 0) {
            System.out.println("Минимальное значение среди чисел, которые делятся на 7= " + min + ", его номер =" + nommin);
            System.out.println("Максимальное значение среди чисел, которые делятся на 7= " + max + ", его номер =" + nommax);
        }
 
    }
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2015, 21:51
Ответы с готовыми решениями:

Найти в массиве сумму максимума среди чисел с нечетными номерами и минимума среди чисел с четными номерами
Найти сумму наибольшего значения среди чисел с нечетными номерами и наименьшего значения среди чисел с четными номерами тест ...

Поиск минимума/максимума среди нескольких значений
Нужно решить функцию в дополнении visual basic для excel,возникла проблема с поиском минимального и максимального значения среди значений...

Поиск минимума/максимума в массиве
Доброго времени суток. Проблема просто смешная, но я не могу понять, почему программа не работает. Нужно найти минимум и максимум...

15
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
29.11.2015, 21:50
Сам вопрос будет?
0
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 5
29.11.2015, 22:35  [ТС]
что не так в приложенном коде?
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
30.11.2015, 09:10
Я не знаю какой у вас массив, но у вас в первом условии написано:
Java
1
if (Q[i] < 0 && Q[i] % 7 == 0) {
то есть что элемент массива обязательно должен быть меншье 0 и делиться на 7 без остатка.
У вас точно там все элементы негативные?
0
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 5
30.11.2015, 18:06  [ТС]
Массив Q заполненный любыми числами, как положительными, так и отрицательными. Если есть отрицательные числя делящиеся на 7, то найти среди них минимальное и максимальное значение, и их номера в массиве. Иначе просто вывести сообщение, что отрицательных чисел которые делятся на 7 нету. Но смысл в том, что у меня не получается найти максимум.
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
30.11.2015, 18:38
Я повторюсь, вы сейчас смотрите только отрицательные элементы массива.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
30.11.2015, 18:53
да это не так важно мне кажется, у него min/max первоначальные значения неверно заполняются
он берет нулевой элемент массива, а надо брать Integer.MIN_VALUE и MAX_VALUE соответственно
0
 Аватар для ][irurg
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
30.11.2015, 19:00
Почему нулевой элемент не катит?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
30.11.2015, 19:15
это предположение, я не сильно вникал в код
у него например условие if (Q[i] < min) может никогда и не сработать, потому что нулевой элемент может быть РАВЕН текущему, а раз условие не сработает то и nommin = i; не выполнится
0
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 5
30.11.2015, 21:28  [ТС]
А как правильно?
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
30.11.2015, 22:01
nikitay, вот смотрите, реализация конечно из разряда (с точки зрения мега гуру, да и мне не очень нравится тоже) "говнокод", но работает. Можете сами причёсывать как хотите (хоть по классам раскидать, хоть по методам, хоть так просто оставить):
Кликните здесь для просмотра всего текста
Java
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
    public static void theSeven() {
        int max = 0, min = 0, indexMin = 0, indexMax = 0;
        int n = (int) (Math.random() * 25 + 15);
        int[] he = new int[n];
        int[] temp = new int[n];
        System.out.println("Исходный массив:");
        for (int q = 0; q < n; q++) {
            he[q] = (int) (Math.random() * 150 - 100);
            temp[q] = he[q];
            System.out.printf("%4d", he[q]);
            if (he[q] < 0 & he[q] % 7 == 0) {
                indexMin = 1;
            }
        }
        if (indexMin == 1) {
            System.out.println();
            Arrays.sort(temp);
            System.out.println("Все числа, которые делятся на 7:");
            for (int i = (n - 1); i >= 0; i--) {
                if (temp[i] < 0) {
                    if (temp[i] % 7 == 0) {
                        System.out.printf("%4d", temp[i]);
                    } else {
                        temp[i] = 0;
                    }
                } else {
                    temp[i] = 0;
                }
            }
            for (int q = 0; q < n; q++) {
                if (temp[q] != 0) {
                    min = temp[q];
                    break;
                }
            }
            for (int w = n - 1; w >= 0; w--) {
                if (temp[w] != 0) {
                    max = temp[w];
                    break;
                }
            }
            for (int i = 0; i < n; i++) {
                if (he[i] == min) {
                    indexMin = i + 1;
                }
                if (he[i] == max) {
                    indexMax = i + 1;
                }
            }
            System.out.println("\nМинимальное значение: " + min + " в исходном массиве на " + indexMin + " позиции");
            System.out.println("Максимальное значение: " + max + " в исходном массиве на " + indexMax + " позиции");
        } else {
            System.out.println("\nВ массиве нет отрицательных чисел кратных семи.");
        }
    }

Формирует вот такой вывод:
Java
1
2
3
Исходный массив:
  17  28   2  23 -43   9  -3  31 -92  -8   6 -16 -47  39 -80 -65  21
В массиве нет отрицательных чисел кратных семи.
или вот такой:
Java
1
2
3
4
5
6
Исходный массив:
 -73 -72 -99  28 -66 -78 -14 -51 -73 -10 -78 -25 -16 -47  44 -98  -2 -61 -32 -68 -47 -78 -84 -22  23
Все числа, которые делятся на 7:
 -14 -84 -98
Минимальное значение: -98 в исходном массиве на 16 позиции
Максимальное значение: -14 в исходном массиве на 7 позиции
0
01.12.2015, 11:47

Не по теме:

боже, какой бред
я про код в сообщении выше

0
01.12.2015, 14:28

Не по теме:

Паблито, я же сразу написал на что это похоже. Ежели у Вас есть время и желание сделать решение в соответствии со всеми канонами ООП и общей философией Java - буду рад. Предложите варианты того, как из предложенного варианта сделать нечто более удобоваримое - буду ещё более рад. Сейчас же могу сказать одно: я учусь полностью самостоятельно. Это довольно сложно: ни спросить не у кого, ни подсказать некому. Всё, что я размещаю пишу лично, ни какого "ctrl с/ctrl v", если решение не моё, тогда я даю только ссылку. Так что любую конструктивную критику принимаю и рад ей, а просто констатировать "бред"...

0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
01.12.2015, 16:05
моя критика - конструктивная, спорить бесполезно
выложил код, который сам же и назвал говнокодом - будь готов быть зохаванным тролями

ну и по теме, мой вариант
Java
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
import java.util.Arrays;
import java.util.Random;
 
public class KakoetoZadanie {
 
    public static void main(String[] args) {
        boolean minFound = false;
        boolean maxFound = false;
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        int posMinElement = 0;
        int posMaxElement = 0;
        //
        int[] arr = makeArray(20);
        System.out.println(Arrays.toString(arr));
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] >= 0 || arr[i] % 7 != 0) continue;
            if (arr[i] > max) {
                maxFound = true;
                posMaxElement = i;
                max = arr[i];
            }
            if (arr[i] < min) {
                minFound = true;
                posMinElement = i;
                min = arr[i];
            }
        }
        if (minFound) System.out.println("min position " + posMinElement + "\tmin= " + min);
        else System.out.println("min element not found");
        if (maxFound) System.out.println("max position " + posMaxElement + "\tmax= " + max);
        else System.out.println("max element not found");
 
    }
 
    private static int[] makeArray(int size) {
        Random r = new Random();
        int[] arr = new int[size];
        for (int i = 0; i < arr.length; i++) arr[i] = r.nextInt(100) - 50;
        return arr;
    }
}
Добавлено через 13 минут
хотя можно было бы и без boolean флагов
Кликните здесь для просмотра всего текста
Java
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
import java.util.Arrays;
import java.util.Random;
 
public class KakoetoZadanie {
 
    public static void main(String[] args) {
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        int posMinElement = -1;
        int posMaxElement = -1;
        //
        int[] arr = makeArray(20);
        System.out.println(Arrays.toString(arr));
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] >= 0 || arr[i] % 7 != 0) continue;
            if (arr[i] > max) {
                posMaxElement = i;
                max = arr[i];
            }
            if (arr[i] < min) {
                posMinElement = i;
                min = arr[i];
            }
        }
        if (posMinElement > -1) System.out.println("min position " + posMinElement + "\tmin= " + min);
        else System.out.println("min element not found");
        if (posMaxElement > -1) System.out.println("max position " + posMaxElement + "\tmax= " + max);
        else System.out.println("max element not found");
 
    }
 
    private static int[] makeArray(int size) {
        Random r = new Random();
        int[] arr = new int[size];
        for (int i = 0; i < arr.length; i++) arr[i] = r.nextInt(100) - 50;
        return arr;
    }
}
0
01.12.2015, 16:39

Не по теме:

Паблито, а ни кто же и не спорил. Я же просто обозначил свою позицию: наткнулся на задачу, понял что выйдет сделать - сделал. Мне второй вариант больше нравится. Но вот, на месте какого-нибудь студента, я бы предложенные Вами варианту не понёс бы сдавать преподавателю, слишком они уже "профессиональные", отточенные. Да и свой бы не понёс: всегда могут подловить на том, что это скачано вот оттуда или вот отсюда, чего-нибудь менял бы...
А за примеры благодарю, посмотрел уже про класс Integer - раньше не знал о нём. Да и рандомные значения тоже вариант вот так задавать. Пара вопросов, если позволите: вот чтобы random из Math использовать, ни чего импортировать не нужно, а при Random из Util нужен импорт. Так чем один хуже другого? Ну или лучше?
И про запись

Java
1
if (minFound)
- тут нет оператора сравнения, что подразумевается вместо? Просто наличие или отличие от нуля? P.S.: А, извините, увидел - это же логические операторы, вопрос отпал...
Спасибо.

0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
01.12.2015, 17:11
Цитата Сообщение от HOBATOP Посмотреть сообщение
про класс Integer
та я оттуда только две эти константы взял, так проще, не нужно помнить максимально-минимальные значения для int
Цитата Сообщение от HOBATOP Посмотреть сообщение
вот чтобы random из Math использовать, ни чего импортировать не нужно, а при Random из Util нужен импорт.
да можно и так и так, может там и есть разница, я не в курсе
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2015, 17:11
Помогаю со студенческими работами здесь

Поиск максимума и минимума в массиве
Помогите пожалуйста написать программу через класс Array using System; using System.Collections.Generic; using System.Linq; ...

Поиск минимума и максимума в двумерном массиве
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int n; cin &gt;&gt; n; int *a = new int; for...

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

Поиск минимума и максимума в динамическом массиве указателей
Вот функции минимума и максимума в шаблоне класса. Проблема в том, что меняется значение 1 элемента в динам. массиве указателей, и дальше...

Реализовать функции поиска минимума и максимума, среди двух заданных чисел (статичные библиотеки)
Написать статическую библиотеку, в которой реализовать 2 функции: одну на поиск минимума, а вторую на поиск максимума, среди двоих заданых...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru