Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297

Сортировка dear array

19.01.2013, 19:04. Показов 1361. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Перебрался к массивам.
Написал программу на сортировку чисел в массиве

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
40
41
42
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication57;
import java.util.Scanner;
/**
 *
 * @author Пользователь
 */
public class JavaApplication57 {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int[] array = new int[5];
        int min;
        Scanner console =  new Scanner (System.in);
        for(int i = 0; i<=3; i++)
        {
             array[i] =  console.nextInt();
            
        }
        ///////////////////////////////
        for (int k = 0; k<=3; k++)
        {
            min = array[k];
           
            if (array[k]>array[k+1]){
                array[k] = array[k+1];
                array[k+1] = min;
            }
            }
        
        //////////////////////////////
        for (int j=0; j<=3; j++){
            System.out.print(array[j] + " ");
        }
    }
}
Значит рассказываю. Первый цикл на заполнение массива.
Второй на распределение чисел.
Третий на вывод.
Вот что получается.
run:
1
3
2
9
1 2 3 0 ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 5 секунд)
Во первых ввод почему то требует 4ое число независимо от того сколько я поставлю в цикле... он будет требовать ввести на одно больше...
Сортируется все нормально... смотрим еще один вариант...
run:
3
2
1
9
2 1 3 0 ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 6 секунд)
как видите поменялось только 2 числа... я запутался, прошу вашей помощи.
И еше... почему не работают циклы с условием
a<=array.length ?

Добавлено через 1 час 16 минут
Мужики. Просьба еще помочь со следущими заданиями

С клавиатуры задаются три строковых значения. Требует-
ся вывести на экран данные значения в алфавитном по-
рядке.
Определить, во введенной строке есть десятичное число?
С клавиатуры задаются три строковых значения. Требует-
ся проверить на вхождение первого значения в два ос-
тальные одновременно.
И если не сложно дайте ссылку где можно почитать про функции.
Т.е копирование\удаление\вставка (работа с массивами)

Задания бы и сам рад сделать, но логически не могу представить как это должно выглядеть.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.01.2013, 19:04
Ответы с готовыми решениями:

Сортировка Dynamic Array
есть массив DynamicArray&lt;DynamicArray&lt;AnsiStrin g&gt; &gt; fi; p1 p2 p3 p4 p2 p3 p4 p2 p3 p4 p4 нужно отсортировать в порядке...

Сортировка Array.Sort
Я новичок, поэтому объясните как можно более прозрачно. У меня есть массив, который сохраняет название хоккейных команд, в этом массиве...

Сортировка std::array
Не получается реализовать сортировку контейнера array...(чтобы вся структура отсортировалась по полю third) Вот в классе объявляю.. ...

12
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
19.01.2013, 20:46
Цитата Сообщение от waip Посмотреть сообщение
Во первых ввод почему то требует 4ое число независимо от того сколько я поставлю в цикле... он будет требовать ввести на одно больше...
смотрим ваш код
Java
1
2
int[] array = new int[5];//массив из 5 (пяти) int
 for(int i = 0; i<=3; i++)//цикл на заполнение "сортировку" и печать 4 (четырех) элементов (0,1,2,3)
первая не схождение
Цитата Сообщение от waip Посмотреть сообщение
Сортируется все нормально...
хм.
3
2
1
9
2 1 3 0
по моему не отсортировало. Ваша сортировка проверяет только соседний элемент и только один раз.
если уж хотите свою сортировку то проверяйте цикл до тех пор пока не будет отсортировано все, например
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
boolean flag = true;//флаг обозначающий что все отсортированно
        while (true) {//бесконечный цикл
            for (int k = 0; k<=4-1; k++){
                min = array[k];
 
                if (array[k]>array[k+1]){
                    array[k] = array[k+1];
                    array[k+1] = min;
                    flag = false;//если что то сортировали - флаг false
                }
            }
           if(flag){//проверяем флаг, если не чего не сортировали - выход
                break;
           }
            flag = true;//сбрасываем флаг
        }
Цитата Сообщение от waip Посмотреть сообщение
почему не работают циклы с условием a<=array.length
Привыкните наконец то, тут не телепаты и нету слово не работает, есть описание ошибки которую выдает вам компилятор.
Если у вас при использовании данного выражения (a<=array.length) выдает ошибку - ArrayIndexOutOfBoundsException, то вспомните с какого элемента начинается отсчет в массиве

Добавлено через 1 минуту
p.s. есть готовая сортировка массива
Java
1
2
import java.util.Arrays;
Arrays.sort(ВАШ_МАССИВ);
Добавлено через 8 минут
Цитата Сообщение от waip Посмотреть сообщение
С клавиатуры задаются три строковых значения. Требует-
ся вывести на экран данные значения в алфавитном по-
рядке.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] arg) {
        String[] myArray = new String[3];
        Scanner sc = new Scanner(System.in);
        System.out.println("Введети тескт");
        for(int i = 0; i<myArray.length; i++){
            myArray[i] = sc.nextLine();
        }
        System.out.println("Введенные строки:");
        for(String s : myArray){
            System.out.println(s);
        }
        Arrays.sort(myArray);
 
        System.out.println("Отсортированные строки: ");
        for(String s : myArray){
            System.out.println(s);
        }
    }
Добавлено через 18 минут
Цитата Сообщение от waip Посмотреть сообщение
С клавиатуры задаются три строковых значения. Требует-
ся проверить на вхождение первого значения в два ос-
тальные одновременно.
Java
1
2
3
4
5
6
7
8
9
10
11
12
 String[] myArray = new String[3];
        Scanner sc = new Scanner(System.in);
        System.out.println("Введите строки");
        for (int i = 0; i<myArray.length; i++){
            myArray[i] = sc.nextLine();
        }
        if (myArray[1].contains(myArray[0]) && myArray[2].contains(myArray[0])) {
            System.out.println("Ok");
        }
        else {
            System.out.println("No");
        }
Добавлено через 24 минуты
Цитата Сообщение от waip Посмотреть сообщение
Определить, во введенной строке есть десятичное число?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String[] myArray = new String[3];
        Scanner sc = new Scanner(System.in);
        System.out.println("Введите строки");
        for (int i = 0; i<myArray.length; i++){
            myArray[i] = sc.nextLine();
        }
        for (int i = 0; i<myArray.length; i++){
            ArrayList<String> list = new ArrayList<String>();
            Pattern p = Pattern.compile("\\d+");
            Matcher m = p.matcher(myArray[i]);
            while (m.find()){
                list.add(m.group());
            }
            if (list.size() > 0){
                System.out.println("Строка №" + (i+1) + " содержит число");
            };
        }
1
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
20.01.2013, 07:40  [ТС]
Цитата Сообщение от Drygba Посмотреть сообщение
p.s. есть готовая сортировка массива
import java.util.Arrays;
Arrays.sort(ВАШ_МАССИВ);
оооо) вот это уже другое дело Спасибо, что показали этот метод.

Относительно последнего задания. Код не совсем понял, поэтому спрошу так. Под десятичным числом что понимается? Число в десятичной системе?

Добавлено через 1 час 41 минуту
И еще вопрос. Сделал условие на выход из цикла.
Т.е выполняться может много раз и я хотел чтобы после занесения пробела или другого символа совершался выход из ввода символов.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner console = new Scanner(System.in);
        String[] arr = new String[100];
        int i =0;
        do{
            System.out.println("Value: ");
            arr[i] = console.next();
            if (arr[i]!='0-9' ){
                System.out.println("Input Closed. Used: "+i);
                break;
                
            }
        }while(true);
        
    }
Смотрим на if (arr[i]!='0-9' )
Компилятор ругается на эту запись. И на "0-9" тоже. Точнее не ругается, а так их и допускает. И даже понятно почему... условием стоит запись 0-9, а не диапазон чисел от 0 до 9..

Я пытался сделать так
if (arr[i]!="" ) и даже так if (arr[i]!=" " ) но на пробел программа не реагирует....

Добавлено через 10 минут
На решетку реагирует... а на пробел нет

Java
1
2
3
4
5
6
7
8
9
do{
            i++;
            System.out.println("Value: ");
            arr[i] = console.next();
            if (arr[i].startsWith("#") ){
                System.out.println("Input Closed. Used: "+i);
                break;
                
            }
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
20.01.2013, 10:58
Цитата Сообщение от waip Посмотреть сообщение
Код не совсем понял, поэтому спрошу так. Под десятичным числом что понимается? Число в десятичной системе?
число от 0-9.
1
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
20.01.2013, 14:11  [ТС]
А как сделать диапазон чисел?
На паскале это было 0..9
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
20.01.2013, 16:24
waip, только условным оператором (на сколько я знаю)
0
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
20.01.2013, 18:15  [ТС]
Цитата Сообщение от Севак Посмотреть сообщение
waip, только условным оператором (на сколько я знаю)
Допустим есть условие
С клавиатуры задаётся строка. Требуется преобразовать
строку так, чтобы в ней остались только буквы.
Я должен сделать цикл от начала до конца массива.
И вложить условие. Если i-тый элемент массива есть число "0-9" значит удалить его.
Как это сделать?
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
20.01.2013, 18:26
waip, напиши метод, принимающий на вход char и проверяющий цифра ли это или нет, дальше перебираем все символы строки, если не цифра (проверяем методом), то плюсуем символ к строке результата, иначе нет
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
20.01.2013, 19:34
Цитата Сообщение от waip Посмотреть сообщение
С клавиатуры задаётся строка. Требуется преобразовать
строку так, чтобы в ней остались только буквы.
зачем использовать велосипед если есть метод replaceAll
Java
1
2
3
4
public static void main(String[] arg) {
        String s = " sdfsjdfhns s32 r,gknmsd,g o34 fg,mdn gk 349";
        System.out.println(s.replaceAll("\\d+", ""));
    }
1
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
20.01.2013, 19:37
Drygba, да ты прав!
0
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
22.01.2013, 13:01  [ТС]
Цитата Сообщение от Drygba Посмотреть сообщение
зачем использовать велосипед если есть метод replaceAll
Спасибо. Остается два вопроса.
Что означает \\d+
И как изменить код если потребуется оставить только цифры?
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
22.01.2013, 15:09
Цитата Сообщение от waip Посмотреть сообщение
Что означает \\d+
метод replaceAll, первым аргументом принимает регулярное выражение.
а в регулярном выражении \d - обозначает цифры от 0 до 9,
знак + обозначает один и более символов

Цитата Сообщение от waip Посмотреть сообщение
И как изменить код если потребуется оставить только цифры?
написать вместо \\d:
или \\D+ - все не цифры
или [a-zA-Z]
или еще как извратится
1
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
22.01.2013, 15:21  [ТС]
Большое спасибо. Вы открываете глаза на многие вещи.

А то пришлось бы по старинке прогонять цикл с условием. если символ - удалить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2013, 15:21
Помогаю со студенческими работами здесь

Сортировка функцией Array.Sort
Даже числа не выводит,чес слово. Что исправить? static void Main(string args) { int n; ...

Сортировка массива структур с помощью Array.Sort
struct myArray { public int Numb; } class Program { static void Main(string args) { ...

Документ после проведения не сохраняет введенные данныеHelp Help, dear people!
Добрый день/ночь программеры и любители поконфигурировать! у меня возникла проблема. пишу дипломку по конфигуратору 8.2 вчера создала...

Двумерный массив <array>. const int value = array.size(); value не константа?
#include &lt;array&gt; #include &lt;iostream&gt; using std::array; using std::cout; /*ФУНКЦИЯ ЗАПОЛНЕНИЯ МАССИВА ЗНАЧЕНИЯМИ*/ template...

Присвоить значения переменных в массив Array (class Array в Turbo C++)
Здравствуйте!!! Изучаю help в Turbo C++ 3.1 дошел до класса Array: main() { //при подключение соответствующих библиотек и...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru