Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 12.02.2018
Сообщений: 135
1

Какие еще варианты есть компактнее

22.03.2018, 21:38. Просмотров 694. Ответов 12
Метки нет (Все метки)

Правильно ли я сделал? Есть ли еще варианты, поскидывайте пожалуйста я поразбираюсь

Программа вводит пять чисел с клавиатуры и выводит минимальное из них на экран.
Требования:
1. Программа должна считывать числа с клавиатуры.
2. В классе должен быть метод public static void main.
3. В классе должен быть метод public static min, принимающий 5 параметров типа int.
4. Метод min должен возвращать минимум из 5 переданных чисел. Если минимальных чисел несколько - вернуть любое из них.
5. Программа должна выводить строку, которая начинается на "Minimum = ".
6. Программа должна выводить строку, которая заканчивается минимальным из 5 введенных чисел.

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
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(reader.readLine());
        int b = Integer.parseInt(reader.readLine());
        int c = Integer.parseInt(reader.readLine());
        int d = Integer.parseInt(reader.readLine());
        int n = Integer.parseInt(reader.readLine());
 
        int minimum = min(a, b, c, d, n);
 
        System.out.println("Minimum = " + minimum);
    }
 
 
    public static int min(int a, int b, int c, int d, int n) {
        int[] arr = {a, b, c, d, n};
        for (int i = 0; i < arr.length; i++){
            arr[0] = a;
            arr[1] = b;
            arr[2] = c;
            arr[3] = d;
            arr[4] = n;
 
 
        }
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
 
        }
        return arr[0];
    }
}
Добавлено через 42 секунды
можно ли мой код оптимизировать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2018, 21:38
Ответы с готовыми решениями:

Какие еще есть способы проверки строк на соответствие шаблонам, кроме регулярок?
Помимо регулярных выражений, какие еще есть способы проверки строк на соответствие шаблонам? Как,...

Какие варианты кода не вызовут ошибку компиляции?
Какие варианты кода не вызовут ошибку компиляции? Вариант 1 class Parent...

Хочу начать изучать java. С чего посоветуете начать, какие книги или какие-то советы есть?
Хочу начать изучать java. С чего посоветуете начать, какие книги или какие-то советы есть? Спасибо...

AppDomain а также какие еще бывают варианты
Здравствуйте. Столкнулся с такой бедой, мой код внутри приложения дампают из Assembly Есть игра, и...

12
Модератор
Эксперт PythonЭксперт Java
4751 / 2684 / 1074
Регистрация: 21.10.2017
Сообщений: 8,267
Записей в блоге: 2
22.03.2018, 21:45 2
Цитата Сообщение от 3vik Посмотреть сообщение
можно ли мой код оптимизировать?
Можно.
Вместо 5 переменных задай массив из 5 элементов, заполняй его в цикле. Вместо BufferedReader используй сканер и метод nextInt(). В метод min передавай этот массив, там сортируй и возвращай минимум. Профит

Добавлено через 53 секунды
Цитата Сообщение от 3vik Посмотреть сообщение
int minimum
переменную можно вообще не использовать
0
2645 / 2273 / 698
Регистрация: 05.07.2013
Сообщений: 11,025
22.03.2018, 21:58 3
вместо сортировки просто найди минимум, остальное без разницы
0
0 / 0 / 1
Регистрация: 12.02.2018
Сообщений: 135
22.03.2018, 22:50  [ТС] 4
iSmokeJC,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int a;
        int arr [] = new int[5];
        for (int i = 0; i < arr.length; i++){
           a = Integer.parseInt(reader.readLine());
           arr[i] = a;
 
 
        }
 
        System.out.println(min(arr));
    }
 
 
    public static int min(int [] arr) {
        Arrays.sort(arr);
    
        return arr[0];
    }
}
"В классе должен быть метод public static min, принимающий 5 параметров типа int."
Правильно? вроде работает, но все равно не по условию, я без сканера сделал, т. к. к Buffer что то привык уже.
0
Модератор
Эксперт PythonЭксперт Java
4751 / 2684 / 1074
Регистрация: 21.10.2017
Сообщений: 8,267
Записей в блоге: 2
22.03.2018, 22:56 5
3vik, цикл - то зачем в методе min?
Цитата Сообщение от 3vik Посмотреть сообщение
принимающий 5 параметров типа int
Если это обязательно, то придется таки делать как в твоем 1-м варианте и передавать туда arr[0], arr[1]...
0
0 / 0 / 1
Регистрация: 12.02.2018
Сообщений: 135
22.03.2018, 22:59  [ТС] 6
iSmokeJC, по условию да, было обязательно, спасибо!
0
Модератор
Эксперт PythonЭксперт Java
4751 / 2684 / 1074
Регистрация: 21.10.2017
Сообщений: 8,267
Записей в блоге: 2
22.03.2018, 22:59 7
Java
1
2
3
for (int i = 0; i < arr.length; i++){
     arr[i] = Integer.parseInt(reader.readLine());
}
Переменная а не нужна
0
0 / 0 / 1
Регистрация: 12.02.2018
Сообщений: 135
22.03.2018, 23:05  [ТС] 8
iSmokeJC, тут сразу получается и заполняет тем что с клавиатуры, а у меня было разбито на 2 шага?
0
Модератор
Эксперт PythonЭксперт Java
4751 / 2684 / 1074
Регистрация: 21.10.2017
Сообщений: 8,267
Записей в блоге: 2
22.03.2018, 23:06 9
3vik, ага
0
0 / 0 / 1
Регистрация: 12.02.2018
Сообщений: 135
22.03.2018, 23:10  [ТС] 10
iSmokeJC, Спасибо огромное!!!!

Добавлено через 2 минуты
xoraxax, минимум путем сравнения переменных в массиве? или как
0
3139 / 2237 / 411
Регистрация: 28.04.2012
Сообщений: 7,528
23.03.2018, 10:51 11
Цитата Сообщение от 3vik Посмотреть сообщение
или как
Java
1
IntStream.of(arr).min();
0
741 / 488 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
26.03.2018, 01:55 12
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
import java.util.Scanner;
 
public class Task004 {
    private static final int AMOUNT_NUMBERS = 5;
 
    public static void main(String[] args) {
        int[] numbers = readArrayFromConsole(AMOUNT_NUMBERS);
 
        int minNumber = getMinNumber(numbers);
 
        System.out.printf("Minimum = %d;", minNumber);
    }
 
    public static int getMinNumber(int[] array) {
        int min = 0;
        if (array != null) {
            for (int number : array) {
                if (number < min) {
                    min = number;
                }
            }
        }
        return min;
    }
 
    public static int[] readArrayFromConsole(int amountNumber) {
        int[] result = amountNumber > 0 ? new int[amountNumber] : new int[0];
        if (amountNumber > 0) {
            Scanner read = new Scanner(System.in);
            for (int number = 1; number <= amountNumber; number++) {
                System.out.printf("Input number №%d: ", number);
                result[number - 1] = read.nextInt();
            }
        }
        return result;
    }
}
0
1531 / 1214 / 302
Регистрация: 17.02.2014
Сообщений: 6,551
26.03.2018, 11:44 13
Вот, держи, завалялось похожее:
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
import java.util.Scanner;
 
public class CyberMinNum {
 
    private static int getMin(final int ... nums) {
        if (nums == null)
            return Integer.parseInt(null);
        if (nums.length == 1)
            return nums[0];
        if (nums.length == 2)
            return Math.min(nums[0], nums[1]);
        int minForRet = nums[0];
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] < minForRet)
                minForRet = nums[i];
        }
        return minForRet;
    }
 
    public static void main(String args []){
        Scanner inp = new Scanner(System.in);
        System.out.printf("Введите через пробел 5 целых чисел%n");
        System.out.printf("Minimum = %d",getMin(inp.nextInt(), inp.nextInt(), inp.nextInt(),
                inp.nextInt(), inp.nextInt()));
    }
 
}
возможный вариант работы:
Bash
1
2
3
Введите через пробел 5 целых чисел
1 2 3 0 -1
Minimum = -1
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2018, 11:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Есть ли еще короткие варианты проверки на 0?
Есть строка которая допускает выполнения кода только если d неравно 0 и целочисленное деление...

z906 - атуальна ли еще или есть варианты лучше?
Добрый день! Как-то уже общался на этом форуме год назад на подобную тему, но приоритеты...

Посоветуйте, какие есть варианты
Нужно организовать автоматический обмен данными справочника &quot;Сотрудники&quot; между Бухгалтерией и ЗУП....

Получение почты, какие есть варианты
Привет всем, я ищу простой исходник получения почты на c# с помощью POP3 или аналогичных,...


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

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

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