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

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

25.10.2013, 01:03. Показов 2527. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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