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


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
25.10.2013, 01:35:43
    #38440605
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Adrikram,
а если 10 чисел надо будет ввести?
...
Рейтинг: 0 / 0
25.10.2013, 01:37:17
    #38440606
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Код: 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
25.10.2013, 01:53:41
    #38440611
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Дай бох чтоб препод не спросил что скрыто за Collections.sort.
...
Рейтинг: 0 / 0
25.10.2013, 09:59:42
    #38440783
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Adrikram,

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

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

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

Фраза "и вывести на экран среднее из них" - как будто бы напрашивается добавить слово "арифметическое
среднее".
...
Рейтинг: 0 / 0
25.10.2013, 11:00:15
    #38440888
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
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
25.10.2013, 11:04:06
    #38440890
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
maytonФраза "и вывести на экран среднее из них" - как будто бы напрашивается добавить слово "арифметическое
среднее".
Не напрашивается, сортировка 3-х чисел это стандартная задача, перед изучением алгоритмов сортировки.
Чтобы студент мог сам изобрести алгоритм сортировки пузырьком.
...
Рейтинг: 0 / 0
25.10.2013, 11:39:54
    #38440962
Zukora
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Не думаю, что надо лезть в сортировки. Это простая задача на if для 3-х а не n чисел. А то придет он на пару с Collections.sort(inputs); а препод и сам такого не знает :) Придется объяснять.
...
Рейтинг: 0 / 0
25.10.2013, 14:29:06
    #38441336
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Это пузырьковая сортировка массива из 3х элементов. Можно ее замыливать
или по другому называть но факт останется фактом.
...
Рейтинг: 0 / 0
25.10.2013, 14:48:47
    #38441359
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
maytonЭто пузырьковая сортировка массива из 3х элементов. Можно ее замыливать
или по другому называть но факт останется фактом.
Совершенно верно, только студент должен сам ее написать , а не вызвать библиотечную функцию.
...
Рейтинг: 0 / 0
25.10.2013, 14:50:21
    #38441363
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
HoBTID должен сам ее написать
Или хотя бы понять, как она написана :-)
...
Рейтинг: 0 / 0
25.10.2013, 16:21:19
    #38441564
Adrikram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Имеется ввиду не среднее арифметическое, а число которое не самое большое, но и не самое маленькое из трех.

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

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

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

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

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

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

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

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

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

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

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

Я его ПОНИМАЮ.
Кстати, если этот код запустить и вводить последнее число наименьшим - то оно и выдается как результат. В чём проблема?!
...
Рейтинг: 0 / 0
25.10.2013, 20:51:58
    #38441875
HoBTID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
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
25.10.2013, 21:03:54
    #38441888
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Для пузыря можно только один индекс передавать.
...
Рейтинг: 0 / 0
25.10.2013, 22:08:35
    #38441917
Мужик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
А задачка не такая и скучная ;) Слабо обойтись только двумя сравнениями?
Кстати, если решать ее в машинных кодах, на современных процессорах можно решить вообще без условных переходов.
...
Рейтинг: 0 / 0
25.10.2013, 22:14:38
    #38441924
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
Я вот думаю дженерики прикрутить....
...
Рейтинг: 0 / 0
25.10.2013, 22:25:41
    #38441929
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java такая Java - помогите решить задачу...
mayton,

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


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