Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 2

Ява такая Ява - не решается задачка. Основы

25.10.2013, 01:03. Показов 2562. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
// Задача: Ввести с клавиатуры три числа и вывести на экран среднее из них.
// Программа работает и вроде бы всегда верно.
// Но при сдаче на проверку - решение было не принято.
// Что за ошибка у меня в коде?
 
 
import java.util.Scanner;
 
public class Problems
{
 
public static void main(String[] args) throws Exception
{
 
int a = new Scanner(System.in).nextInt();
int b = new Scanner(System.in).nextInt();
int c = new Scanner(System.in).nextInt();
 
if (a<b && a<c) System.out.println(min(b,c));
if (a<b && a==c) System.out.println(a);
if (a<b && a>c) System.out.println(a);
 
if (a==b) System.out.println(a);
 
if (a>b && a<c) System.out.println(a);
if (a>b && a==c) System.out.println(a);
if (a>b && a>c) System.out.println(max(b,c));
 
}
 
static int min (int x, int y) {
int v; if (x<y) v=x; else v=y; return v;
}
 
static int max (int r, int t) {
int s; if (r>t) s=r; else s=t; return s;
}
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2013, 01:03
Ответы с готовыми решениями:

Основы ОПП в Ява и Работа с символьными строками
Разработать класс, набор методов (конструктор и минимум два метода) для программной модели заданного объекта. Описание объекта и его...

Ява и консоль
Доброго времени суток! Начинаю изучение Ява по книге Г. Шилдта. Использую лишь основные инструментальные средства JDK. Так вот, как вообще...

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

20
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
25.10.2013, 01:54
Цитата Сообщение от Adrikram Посмотреть сообщение
public static void main(String[] args) throws Exception
- кто будет ошибку обрабатывать?

Добавлено через 51 секунду
Почему-то мне казалось, что среднее это сумма_чисел / кол-во_чисел.

Добавлено через 1 минуту
Java
1
2
                
double avg = (0.0 + a + b + c) / 3.0;
0
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 2
25.10.2013, 16:29  [ТС]
Имеется ввиду не среднее арифметическое, а число которое не самое большое, но и не самое маленькое из трех.

Про массивы, сортировку и готовые библиотечные курсы слышал, но их ещё не изучали и поэтому надо решить задачу на основе пройденного материала - то есть используя только логические операторы типа if

В общем вопрос такой:
Будет ли мой код из 1 поста находить верный результат для всех случаев или я что то там ещё не учел?
0
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 11
26.10.2013, 11:02
Я тоже недавно начал изучать, но написал-бы практически так-же, только чуть короче

Java
1
2
3
4
5
6
    if (a>b && a<c || a<b && a>c) System.out.println("Среднее значение " +a);
    else if (b>a && b<c || b<a && b>c) System.out.println("Среднее значение " +b);
    else if (c>a && c<b || c>b && c<a) System.out.println("Среднее значение " +c);
    else if (a==b) System.out.println("Средние значения " +a+ " и " + b);
    else if (a==c) System.out.println("Средние значения " +a+ " и " + c);
    else if (c==b) System.out.println("Средние значения " +c+ " и " + b);
Прошу пинать меня за ошибки и как правильнее писать такого плана код?!
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
26.10.2013, 11:47
Я конечно не силен) но тоже решил попробовать правда не знаю или такой подход правильный
Буду рад если кто поправит и укажет как сделать верно

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
public class avarage {
 
    public static void main(String[] args) {
        int temp = 0;
        int a = 598, b = 8, c = -89;//подключить класс для ввода с консоли
        if (a > b) {
            temp = b;
            b = a;
            a = temp;
        }
        if (b > c) {
            temp = c;
            c = b;
            b = temp;
        }
        if (a > b) {
            temp = b;
            b = a;
            a = temp;
        }
        System.out.println("мин = " + a +"\r\n" + "сред = " + b +"\r\n" + "макс = " + c);
        System.out.println("Среднее значение равно = " + b);
    }
}
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
26.10.2013, 14:02
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Arrays;
import java.util.Scanner;
 
public class Srednee {
 
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int[] arr = new int[3];
        arr[0] = scan.nextInt();
        arr[1] = scan.nextInt();
        arr[2] = scan.nextInt();
        Arrays.sort(arr);
        System.out.println("Среднее: " + arr[1]);
    }
}
0
26.10.2013, 16:09

Не по теме:

Цитата Сообщение от verylazy Посмотреть сообщение
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Arrays;
import java.util.Scanner;
 
public class Srednee {
 
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int[] arr = new int[3];
        arr[0] = scan.nextInt();
        arr[1] = scan.nextInt();
        arr[2] = scan.nextInt();
        Arrays.sort(arr);
        System.out.println("Среднее: " + arr[1]);
    }
}
как бы автор говорил:
Про массивы, сортировку и готовые библиотечные курсы слышал, но их ещё не изучали и поэтому надо решить задачу на основе пройденного материала - то есть используя только логические операторы типа if

0
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 11
26.10.2013, 19:06
Цитата Сообщение от -LM- Посмотреть сообщение

Не по теме:


как бы автор говорил:

Хотя, как вариант для тренировки - сделать для любого кол-ва цифр, и остановку с выводом результата при вводе любого символа...
0
2 / 2 / 1
Регистрация: 16.10.2013
Сообщений: 11
26.10.2013, 19:28
ну и мой вариант
Java
1
2
3
4
    public static void main(String[] args) {
        int a = 40, b = 20, c = 30;
        System.out.println(Math.min(Math.max(a, b), Math.max(b, c)));
    }
2
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 11
26.10.2013, 19:41
Цитата Сообщение от hotelman Посмотреть сообщение
ну и мой вариант
По моему это тоже читерство
Нужно только операторами if ... Хотя, для количества вариантов решения задачи на вычисление среднего - отлично!
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
26.10.2013, 20:04
Цитата Сообщение от hotelman Посмотреть сообщение
ну и мой вариант
Блин, все же просто
0
2 / 2 / 1
Регистрация: 16.10.2013
Сообщений: 11
26.10.2013, 20:18
Azazavr, а по-моему это чистая математика =)
0
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 11
26.10.2013, 20:33
Цитата Сообщение от hotelman Посмотреть сообщение
Azazavr, а по-моему это чистая математика =)
Math.min-Math.max он мог ещё не проходить... Скорее всего на следующем занятии покажут, как это можно было намного быстрее сделать
0
2 / 2 / 1
Регистрация: 16.10.2013
Сообщений: 11
26.10.2013, 20:39
уговорили =)
Java
1
2
3
4
5
6
7
8
9
10
    public static void main(String[] args) {
        int a = 10, 
            b = 20, 
            c = 30;
        
        System.out.println(min(max(a, b), max(b, c)));
    }
    
    private static int min(int a, int b) { return a < b ? a : b; }
    private static int max(int a, int b) { return a > b ? a : b; }
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
26.10.2013, 21:35
Цитата Сообщение от hotelman Посмотреть сообщение
уговорили =)
Java
1
2
3
4
5
6
7
8
9
10
    public static void main(String[] args) {
        int a = 10, 
            b = 20, 
            c = 30;
        
        System.out.println(min(max(a, b), max(b, c)));
    }
    
    private static int min(int a, int b) { return a < b ? a : b; }
    private static int max(int a, int b) { return a > b ? a : b; }
хммм может я туплю но все же int c = -9,a = -8, b = 1,
Ваш код возвратил 1 я полагал, что нужно вернуть -8
Выходит не работает...

Добавлено через 5 минут
Цитата Сообщение от Adrikram Посмотреть сообщение
Имеется ввиду не среднее арифметическое, а число которое не самое большое, но и не самое маленькое из трех.

Про массивы, сортировку и готовые библиотечные курсы слышал, но их ещё не изучали и поэтому надо решить задачу на основе пройденного материала - то есть используя только логические операторы типа if

В общем вопрос такой:
Будет ли мой код из 1 поста находить верный результат для всех случаев или я что то там ещё не учел?
ваш код работает правильно!
Но проще было сортировку камешком/пузырьком (первое что делал при изучении джава)

Добавлено через 3 минуты
Цитата Сообщение от hotelman Посмотреть сообщение
ну и мой вариант
Java
1
2
3
4
    public static void main(String[] args) {
        int a = 40, b = 20, c = 30;
        System.out.println(Math.min(Math.max(a, b), Math.max(b, c)));
    }
и это тоже не работает
все те же числа -8 1 -9 на выходе 1
0
2 / 2 / 1
Регистрация: 16.10.2013
Сообщений: 11
26.10.2013, 21:44
warrax, таки да, математика у меня действительно хреновая вышла )))

самый простой способ - отсортировать и взять средний, сейчас подумаю как это на if-else краше написать
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
26.10.2013, 21:58
Цитата Сообщение от hotelman Посмотреть сообщение
самый простой способ - отсортировать и взять средний, сейчас подумаю как это на if-else краше написать

Не по теме:


А я то думал - самый элегантный способ нашли, а нет :(

0
2 / 2 / 1
Регистрация: 16.10.2013
Сообщений: 11
26.10.2013, 22:35
вот, что смог родить
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public static void main(String[] args) {
        int a = -8, 
            b = 1, 
            c = -9;
 
        if (isBelongsTo(a, b, c)) {
            System.out.println(a);
        } else if (isBelongsTo(b, a, c)) {
            System.out.println(b);
        } else {
            System.out.println(c);
        }
    }
    
    private static boolean isBelongsTo(int target, int edge1, int edge2) {
        return Math.min(edge1, edge2) <= target && target <= Math.max(edge1, edge2);
    }
Добавлено через 15 минут
этот же вариант, лучше читаемый, но граничащий с ООПизмом говного мозга
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
public class Test {
 
    private static class Segment {
        final private int a, b;
        
        private Segment(int a, int b) { 
            this.a = a;
            this.b = b;
        }
        
        public boolean contains(int value) { return a <= value && value <= b; }
    }
    
    private static Segment segment(int a, int b) { return new Segment(Math.min(a, b), Math.max(a, b)); }
    
    public static void main(String[] args) {
        int a = 2, 
            b = 3, 
            c = 1;
 
        if (segment(b, c).contains(a)) {
            System.out.println(a);
        } else if (segment(a, c).contains(b)) {
            System.out.println(b);
        } else {
            System.out.println(c);
        }
    }
    
}
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
26.10.2013, 22:37
Цитата Сообщение от Almaz_1993 Посмотреть сообщение

Не по теме:


А я то думал - самый элегантный способ нашли, а нет :(

самый элегантный - массив
его метод тоже работает) только правильно сделать надо

Но задача была сделать только на условиях без сторонних классов
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
26.10.2013, 23:03
Цитата Сообщение от warrax Посмотреть сообщение
самый элегантный - массив

Не по теме:


Ухожу от темы :)

Не всегда массив будет: А если в массиве четное кол-во элементов, то какое тогда будет "среднее" значение?

1 2 3 4 5 6 7 8

Ответ какой: 4 или 5? :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2013, 23:03
Помогаю со студенческими работами здесь

Ява.рекурсия
если в код писать условие 13 8 6 4 1 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

цикл в ява
Написать программу для вычисления F(N,x)=1-1!/x+2!/x^2-3!/x^3+....+-N!/x^N Для заданного действительного числа x&gt;&gt;10. Здесь...

Перписать из Си++ в ява
Добрый день, помогите, пожайлуйста, переписать программу на ява. И, если не сложно, объясните в чем там ключевые различия. Заранее...

Новичок в ява
С чего начать изучение Ява, если я собираюсь делать, в первую очередь, 2д игры под андроид? Если Ява не сильно зависит от платформы,...

Не работают ява скрипты-3
Третьим буду... Та же проблема, что и в темах авторов: Не работают Ява скрипты и Не работают Ява скрипты-2 Не открываются java...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru