Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Михалев
0 / 0 / 0
Регистрация: 27.12.2017
Сообщений: 22
1

Сформировать одномерный массив из n элементов с использованием датчика случайных чисел

11.01.2018, 04:46. Просмотров 471. Ответов 2

Удаление Все элементы больше среднего арифметическ ого элементов массива
Добавление К элементов в начало массива
Перестановка Сдвинуть циклически на M элементов вправо
Поиск Первый четный
Сортировка Простое включение
Пример:
Сформировать массив из n элементов с помощью датчика случайных чисел (n задается пользователем с клавиатуры).
1) Выполнить удаление всех элементов с четными индексами.
2) Выполнить добавление k элементов в конец массива.
3) Выполнить перестановку минимального и максимального элементов.
4) Выполнить поиск первого отрицательного элемента.
5) Выполнить сортировку методом простого включения.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package com.company;
import java.util.Random;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Random r = new Random();
        int[] mass;
        int n, w;
        Scanner in = new Scanner(System.in);
        System.out.println("Введите число элементов массива: ");
        n = in.nextInt();
        mass = new int[n];
        for (int i = 0; i < n; i++)
            mass[i] = r.nextInt(101) - 50;
        char ch;
        w = 0;
        while (w < n) {
            if (w % 10 == 0) ch = '\n';
            else ch = ' ';
            System.out.format("%c[%3d]", ch, mass[w]);
            w++;
        }
       System.out.println('\n' + "1)удалить элементы с четными индексами");
        int m = 0, q;
        for (int i = 0; i < n; i++)
            if (i % 2 == 0) mass[i] = m;
        for (int i = 0; i < n; i++) {
            if (mass[i] == m) {
                for (q = i; q < (n - 1); q++) 
                    mass[q] = mass[q + 1];
                n--;
            }
        }
        w = 0;
        while (w < n) {
            if (w % 10 == 0) ch = '\n';
            else ch = ' ';
            System.out.format("%c[%3d]", ch, mass[w]);
            w++;
        }
       System.out.println('\n' + "2)добавить k элементов в конец массива");
        int k;
        System.out.println("Введите число элементов: ");
        k = in.nextInt();
        for (int i = n+1; i < n+k-1; i++)
            mass[i] = r.nextInt(101) - 50;
       n=n+k;
        w = 0;
        while (w < n) {
            if (w % 10 == 0) ch = '\n';
            else ch = ' ';
            System.out.format("%c[%3d]", ch, mass[w]);
            w++;
        }
        System.out.println('\n' + "3)поменять местами минимальный и максимальный элементы");
        int x,max=0,min=0;
        for (int i=0; i<n;i++)
           if (mass[i] > mass[max]) max=i;
        for (int i=0;i<n;i++)
            if (mass[i] < mass[min]) min=i;
        x = mass[max];
        mass[max] = mass[min];
        mass[min] = x;
        w=0;
        while (w < n) {
            if (w % 10 == 0) ch = '\n';
            else ch = ' ';
            System.out.format("%c[%3d]", ch, mass[w]);
            w++;
        }
       System.out.println('\n' + "4)найти первый отрицательный элемент массива");
            int l = 0;
            for (int i = n; i >= 0; i--)
                if (mass[i] < 0) l = mass[i];
            System.out.println('\n' + "Первый отрицательный элемент массива: " + l);
           System.out.println('\n' + "5) отсортировать массив по методу простого включения");
            int p;
            for (int i = 1; i < n; i++) {
                p = mass[i];
                if (mass[0] > p) {
                    for (q = i - 1; q >= 0; q--) {
                        mass[q + 1] = mass[q];
                    }
                    mass[0] = p;
                } else {
                    for (int j = 1; j < i; j++) {
                        if ((mass[j - 1] < p) && (mass[j] >= p)) {
                            for (q = i - 1; q >= j; q--) {
                                mass[q + 1] = mass[q];
                            }
                            mass[j] = p;
                        }
                    }
                }
            }
            w = 0;
            while (w < n) {
                if (w % 10 == 0) ch = '\n';
                else ch = ' ';
                System.out.format("%c[%3d]", ch, mass[w]);
                w++;
            }
        }
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2018, 04:46
Ответы с готовыми решениями:

Сформировать одномерный массив из целых чисел. Вывести на экран индексы тех элементов, которые кратны трем и пяти
Помогите, кто сможет. Буду благодарен.

Инициализировать одномерный массив из N случайных элементов
Здравствуйте, я только начал изучать язык, задали такое задание, как его решить я не знаю. Помогите...

Инициализируйте одномерный массив из N случайных элементов
Инициализируйте одномерный массив из N случайных элементов типа Т с промежутка . Покажите на экране...

Дан двумерный массив. Сформировать одномерный массив только из четных элементов двумерного массива
Последний раз прошу, пожалуйста

Задан одномерный массив из 16 элементов. Сформировать двухмерный массив 4×4, в котором элементы увеличиваются слева напр
Задан одномерный массив из 16 элементов. Сформировать двухмерный массив 4×4, в котором элементы...

2
iSmokeJC
Модератор
Эксперт Java
2292 / 1219 / 548
Регистрация: 21.10.2017
Сообщений: 3,790
17.01.2018, 17:26 2
Михалев, ну а в чем, собственно, вопрос?
0
thematdev
6 / 6 / 1
Регистрация: 15.01.2018
Сообщений: 42
17.01.2018, 21:44 3
Код(С++, 8 строк, не считая строк с комментариями)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void InsertSort (int k,int x[max]) {
  int i,j, temp;
  for (i=0;i<k;i++) {
  //цикл проходов, i - номер прохода
    temp=x[i]; 
    //поиск места элемента
    for (j=i-1; j>=0 && x[j]>temp; j--)
      x[j+1]=x[j];//сдвигаем элемент вправо, пока не дошли
      //место найдено, вставить элемент 
      x[j+1]=temp;  
  }
Вообще смысл  в такой сортировке, если в "худшем"(когда все сравнения имеют смысл) случае сравнений будет n^2(n - количество элементов). Проще использовать сортировку пузырьком или вообще Arrays.sort(array).
}


Добавлено через 5 минут
P.S Из Вашего топика я понял только то, что Вы не смогли(сутя по Вашей реализации) отсортировать массив... И вообще, если вы обвиняете свой код, то это смешно и глупо, ведь количество операций можно уменьшить вдвое, если сначала отсортировать массив, например поменять местами максимальный и минимальный элемент у Вас уйдёт три строчки, также как и на поиск первого отрицательного элемента.

Добавлено через 1 минуту
P.S.S На Java код "переводится" очень легко.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2018, 21:44

Как можно задать диапазон датчика случайных чисел?
Скажем задать диапазон -20 до 20

Сформировать одномерный массив с использованием датчика случайных чисел
Сформировать одномерный массив, содержащий 15 элементов, с помощью датчика случайных чисел,...

Сформировать массив с n элементов с помощью датчика случайных чисел
Доброго вечера,помогите написать код к программе с массивами.Само условие задачи:Сформировать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru