В три переменные a, b и c явно записаны программистом три целых попарно неравных между собой числа. Создать программу, которая переставит числа в переменных таким образом, чтобы при выводе на экран последовательность a, b и c оказалась строго возрастающей.
Пример ввода: a = 14; b = 10; c = 23; Результат: a = 10; b = 14; c = 23;
Я сделал вот так
public static void main(String args []) < int a = in.nextInt(); int b = in.nextInt(); int c = in.nextInt(); int x; System.out.println(«Числа в переменных a, b и c : » + a + » » + b + » » + c); if (a >b) < x = a; a = b; b = x; >if (b > c) < x = b; b = c; c = x; >System.out.println(«Возрастающая последовательность: » + a + » » + b + » » + c); >
Отслеживать
13.6k 12 12 золотых знаков 43 43 серебряных знака 72 72 бронзовых знака
задан 1 окт 2016 в 17:48
63 1 1 золотой знак 3 3 серебряных знака 11 11 бронзовых знаков
Что вы пробовали и что у вас не получилось?
1 окт 2016 в 17:49
Спасибо,сейчас.
Клавиатурный тренажер (1-й день)
1 окт 2016 в 17:55
Дополните вопрос кодом. Какие сложности возникли при решении задачи?
1 окт 2016 в 18:00
Короче правильно нужно ещё раз a и b сравнить скопирован первый if.
1 окт 2016 в 21:36
А не проще сразу выводить в таком виде: Минимальное — мин(а, мин(б, в)). Среднее — (а + б + в — макс(а, макс(б, в)) — мин(а, мин(б, в)). Самое большое — макс(а, макс(б, в)) ?
11 янв 2018 в 20:38
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
Вот такое незамысловатое решение:
import java.util.Arrays; public class Sort < public static void main(String[] args) < int[] array = new int[]; Arrays.sort(array); System.out.println(Arrays.toString(array)); > >
Если смысл вопроса сводится, как самому реализовать алгоритм, то смотрим например тут.
Отслеживать
ответ дан 2 окт 2016 в 16:26
51.5k 195 195 золотых знаков 56 56 серебряных знаков 233 233 бронзовых знака
для фиксированного числа элементов, можно специализированные алгоритмы сортировки использовать (если есть специализированные требования, например, как в теле вопроса или для скорости)
2 окт 2016 в 16:51
2 окт 2016 в 17:10
под «специализированные требования» в теле вопросе я имел ввиду что ввод и вывод заданы в трёх отдельных переменных, а не в одном массиве, если следовать букве.
2 окт 2016 в 19:02
Доказано (для сетей сортировки), что три сравнения—это оптимальное число, но ваш код в вопросе использует только два сравнения (ошибка). Добавьте третье сравнение, например:
public class Sort3 < public static void main(String[] args) < int a = 14; int b = 10; int c = 23; assert a != b a != c b != c; System.out.println(«Числа в переменных a, b и c : » + a + » » + b + » » + c); if (b >c) < int x = b; b = c; c = x; // swap(b, c); >assert b < c; if (a >c) < int x = a; a = c; c = x; // swap(a, c); >assert a < c; if (a >b) < int x = a; a = b; b = x; // swap(a, b); >assert a < b b < c; System.out.println(«Возрастающая последовательность: » + a + » » + b + » » + c); >>
$ javac -g Sort3.java $ java -ea Sort3 Числа в переменных a, b и c : 14 10 23 Возрастающая последовательность: 10 14 23
Источник: ru.stackoverflow.com
Как включить подсветку на любой клавиатуре
level06.lesson11.bonus03
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.78 KB | None | 0 0
package com.javarush.test.level06.lesson11.bonus03 ;
import java.io.BufferedReader ;
import java.io.IOException ;
import java.io.InputStreamReader ;
import java.util.ArrayList ;
/* Задача по алгоритмам
Задача: Написать программу, которая вводит с клавиатуры 5 чисел и выводит их в возрастающем порядке.
Пример ввода:
Пример вывода:
public class Solution
public static void main ( String [ ] args ) throws IOException {
/*Вводим номера*/
String nom1, nom2, nom3, nom4, nom5 ;
BufferedReader reader = new BufferedReader ( new InputStreamReader ( System . in ) ) ;
nom1 = reader. readLine ( ) ;
nom2 = reader. readLine ( ) ;
nom3 = reader. readLine ( ) ;
nom4 = reader. readLine ( ) ;
nom5 = reader. readLine ( ) ;
/*Переводим строки в int*/
int num1 = Integer . parseInt ( nom1 ) ;
int num2 = Integer . parseInt ( nom2 ) ;
int num3 = Integer . parseInt ( nom3 ) ;
int num4 = Integer . parseInt ( nom4 ) ;
int num5 = Integer . parseInt ( nom5 ) ;
/*Формируем массив*/
int numbers [ ] = { num1, num2,num3,num4,num5 } ;
/*Размер массива*/
int arraySize = numbers. length ;
//System.out.println (arraySize);
for ( int a = 1 ; a < arraySize ; a ++ ) {
for ( int b = arraySize — 1 ; b >= a ; b — ) {
if ( numbers [ b — 1 ] > numbers [ b ] ) {
int t = numbers [ b — 1 ] ;
numbers [ b — 1 ] = numbers [ b ] ;
numbers [ b ] = t ;
for ( int i = 0 ; i < arraySize ; i ++ ) {
System . out . println ( numbers [ i ] ) ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement
XML | 22 min ago | 2.08 KB
HTML | 23 min ago | 8.06 KB
GetText | 26 min ago | 0.23 KB
Java | 42 min ago | 0.31 KB
Java | 44 min ago | 0.29 KB
Java | 51 min ago | 0.54 KB
Kotlin | 52 min ago | 0.34 KB
Python | 1 hour ago | 1.04 KB
Advertisement
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
Источник: pastebin.com
4johndoe / Solution.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
package com . javarush . test . level06 . lesson11 . bonus03 ; |
import java . io . BufferedReader ; |
import java . io . InputStreamReader ; |
/* |
Задача: Написать программу, которая вводит с клавиатуры 5 чисел и выводит их в возрастающем порядке. |
Пример ввода: |
3 |
2 |
15 |
6 |
17 |
Пример вывода: |
2 |
3 |
6 |
15 |
17 |
*/ |
public class Solution |
public static void main ( String [] args ) throws Exception |
BufferedReader reader = new BufferedReader ( new InputStreamReader ( System . in )); |
int [] a = new int [ 5 ]; |
for ( int i = 0 ; i < 5 ; i ++) |
a [ i ] = Integer . parseInt ( reader . readLine ()); |
// System.out.println(a[i]); |
> |
for ( int i = 0 ; i < a . length ; i ++) |
int min = a [ i ]; |
int minIndex = i ; |
for ( int j = i + 1 ; j < a . length ; j ++) |
if ( a [ j ] < min ) |
min = a [ j ]; |
minIndex = j ; |
> |
> |
if ( i != minIndex ) |
int temp = a [ i ]; |
a [ i ] = a [ minIndex ]; |
a [ minIndex ] = temp ; |
> |
System . out . println ( a [ i ]); |
> |
> |
> |
Источник: gist.github.com