powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java такая Java - помогите решить задачу...
25 сообщений из 34, страница 1 из 2
Java такая Java - помогите решить задачу...
    #38440598
Adrikram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
// Задача: Ввести с клавиатуры три числа и вывести на экран среднее из них.
// Программа работает и вроде бы всегда верно.
// Но при сдаче на проверку - решение было не принято.
// Что за ошибка у меня в коде?


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 / 0
Java такая Java - помогите решить задачу...
    #38440605
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adrikram,
а если 10 чисел надо будет ввести?
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440606
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Problems {

	public static void main(String[] args) throws Exception {
		List<Integer> inputs = new ArrayList<Integer>();
		Scanner s = new Scanner(System.in);
		for (int i = 0; i < 3; i++) {
			inputs.add(s.nextInt());
		}
		Collections.sort(inputs);
		System.out.println(inputs.get(1));
	}
}
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440611
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дай бох чтоб препод не спросил что скрыто за Collections.sort.
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440783
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adrikram,

Может просили (a+b+c)/3 ?
Или b .
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440787
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если-бы чисел было 4, где стояло-бы среднее?
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440803
GaraZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adrikram,

среднее арифметическое?

а вообще код тошнотворный, я б тоже не принял если честно
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440834
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чел просто еще не умеет сортировать. Кроме того ТЗ дейстивтельно "стрёмно" записано. Как будто
это не копи-паста а устный пересказ автора с домыслами.

Фраза "и вывести на экран среднее из них" - как будто бы напрашивается добавить слово "арифметическое
среднее".
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440888
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adrikram, это не "Java такая Java", а кто-то лекции прогуливал.
Код: 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 static void main(String[] args) throws Exception {
        int[] nums = new int[3];
        Scanner scanner = new Scanner(System.in);

        for (int i = 0; i < nums.length; ++i) {
            nums[i] = scanner.nextInt();
        }

        if (nums[0] > nums[1]) {
            swap(nums, 0, 1);
        }

        if (nums[1] > nums[2]) {
            swap(nums, 1, 2);
        }

        System.out.println(nums[1]);
    }

    private static void swap(int[] numsArray, int i1, int i2) {
        int tmp = numsArray[i1];
        numsArray[i1] = numsArray[i2];
        numsArray[i2] = tmp;
    }
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440890
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonФраза "и вывести на экран среднее из них" - как будто бы напрашивается добавить слово "арифметическое
среднее".
Не напрашивается, сортировка 3-х чисел это стандартная задача, перед изучением алгоритмов сортировки.
Чтобы студент мог сам изобрести алгоритм сортировки пузырьком.
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38440962
Фотография Zukora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не думаю, что надо лезть в сортировки. Это простая задача на if для 3-х а не n чисел. А то придет он на пару с Collections.sort(inputs); а препод и сам такого не знает :) Придется объяснять.
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441336
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это пузырьковая сортировка массива из 3х элементов. Можно ее замыливать
или по другому называть но факт останется фактом.
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441359
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто пузырьковая сортировка массива из 3х элементов. Можно ее замыливать
или по другому называть но факт останется фактом.
Совершенно верно, только студент должен сам ее написать , а не вызвать библиотечную функцию.
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441363
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HoBTID должен сам ее написать
Или хотя бы понять, как она написана :-)
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441564
Adrikram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется ввиду не среднее арифметическое, а число которое не самое большое, но и не самое маленькое из трех.

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

В общем вопрос такой:
Будет ли мой код из 1 поста находить верный результат для всех случаев или я что то там ещё не учел?
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441570
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdrikramИмеется ввиду не среднее арифметическое, а число которое не самое большое, но и не самое маленькое из трех.

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

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

Ваш код УЖАСЕН:
1. 3 раза создается объект Scanner
2. Написано огромное количество if, когда нужно всего 2.

Правильное решение в этом сообщении 15030339 , уж постарайтесь его ПОНЯТЬ .
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441626
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdrikramБудет ли мой код из 1 поста находить верный результат для всех случаев или я что то там ещё не учел?
Я тебе открою страшный секрет. Есть много способов доказательства правильности кода.
Самый простой из них - иммитация работы. Или модульное тестирование. Ты создаёшь
тестовые условия (кейсы) и для каждого из них пишешь утверждения (asserts).
Например. a=5, b=2, c=3. Среднее = 3. Или a=-1,b=-1,c=-1. Среднее = -1.
Если ты осилил все-все возможные кейсы (не комбинации входных данных которых
могут быть миллиарды а условия) для которых твой софт выдал результат совпадающий
с asserts то можешь хвастливо заявить что твоя программа - правильная. Мы удивимся
но согласимся если у нас не будет возражений по поводу простоты и ясности самих
утверждений. Кстати это одно из требований.

По теме посмотри http://junit.org/
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441780
Adrikram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HoBTIDAdrikramИмеется ввиду не среднее арифметическое, а число которое не самое большое, но и не самое маленькое из трех.

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

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

Ваш код УЖАСЕН:
1. 3 раза создается объект Scanner
2. Написано огромное количество if, когда нужно всего 2.

Правильное решение в этом сообщении 15030339 , уж постарайтесь его ПОНЯТЬ .

Я его ПОНИМАЮ.
Кстати, если этот код запустить и вводить последнее число наименьшим - то оно и выдается как результат. В чём проблема?!
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441875
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdrikramЯ его ПОНИМАЮ.
Кстати, если этот код запустить и вводить последнее число наименьшим - то оно и выдается как результат. В чём проблема?!
Хорошо, что понимаете :-)
Проблема в моей ошибке. Нужно добавить еще один if.
Код: 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.
   public static void main(String[] args) throws Exception {
        int[] nums = new int[3];
        Scanner scanner = new Scanner(System.in);

        for (int i = 0; i < nums.length; ++i) {
            nums[i] = scanner.nextInt();
        }

        if (nums[0] > nums[1]) {
            swap(nums, 0, 1);
        }

        if (nums[1] > nums[2]) {
            swap(nums, 1, 2);

	    if (nums[0] > nums[1]) {
        	swap(nums, 0, 1);
	    }
        }

        System.out.println(nums[1]);
    }

    private static void swap(int[] numsArray, int i1, int i2) {
        int tmp = numsArray[i1];
        numsArray[i1] = numsArray[i2];
        numsArray[i2] = tmp;
    }
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441888
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для пузыря можно только один индекс передавать.
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441917
Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А задачка не такая и скучная ;) Слабо обойтись только двумя сравнениями?
Кстати, если решать ее в машинных кодах, на современных процессорах можно решить вообще без условных переходов.
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441924
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот думаю дженерики прикрутить....
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441929
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

чего мелочиться - надо спринг с мавеном прикручивать)
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441937
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При чём тут фреймворк?
...
Рейтинг: 0 / 0
Java такая Java - помогите решить задачу...
    #38441942
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК:)
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Java такая Java - помогите решить задачу...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]