Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 7
1

Ещё зеленый. Изучаю, пытаюсь понять задачу

24.07.2016, 23:58. Показов 643. Ответов 14

Author24 — интернет-сервис помощи студентам
Добрый вечер.
Начал изучать Java EE, изучаю, решаю задачи. Уже 3 часа пытаюсь понять и решить пару проблем, никак не выходит...
Программа создает массив, случайной длины до 20 символов.
И заполняет его случайными числами от 0 до 99.

Нужно вывести в консоль:
Длину массива - Готово.
Числа из этого массива - Готово.
Максимальное и минимальное значение массива - Готово.
Сумму всех чисел массива - Готово.
Разница max/min - Готово.
Все четные числа из массива - Готово.
Количество четных чисел массива - Не смог.
Максимальное и минимальное четное значение массива. - Не смог.
Сумма максимального и минимального значения массива - Не смог.

И ещё я не могу понять, как вывести в консоль не просто числа из массива - 99 31 9 23 4, а вот так - "Все значения массива - 99 31 9 23 4", то есть перед этими числами вывести фразу...


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
package Lesson;
 
import java.util.Random;
 
public class Massive {
 
    public static void main(String[] args) {
        Random r = new Random(); 
        int a = r.nextInt(20); 
        System.out.println("Длина массива = " + a);
        int mass[] = new int[a];
        for (int i = 0; i < mass.length; i++) {
            mass[i] = r.nextInt(100);
        }
        for (int i = 0; i < mass.length; i++) {
            System.out.print(mass[i] + " ");
 
        }
        System.out.println();
 
        int min = mass[0];
        int max = mass[0];
        for (int i = 0; i < mass.length; i++) {
            if (mass[i] < min) {
                min = mass[i];
            }
            if (mass[i] > max) {
                max = mass[i];
            }
        }
        System.out.println("max=" + max + " min=" + min);
        System.out.println();
 
        int summ = 0;
        for (int i = 0; i < mass.length; i++) {
            summ = summ + mass[i];
        }
 
        System.out.println("Сумма всех чисел массива = " + summ);
 
        int diff = max - min;
        System.out.println("разница max/min = " + diff);
        for (int i = 0; i < mass.length; i++) {
            if ((mass[i] % 2) == 0) {
                System.out.print(mass[i] + " ");
            }
        
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2016, 23:58
Ответы с готовыми решениями:

Пытаюсь понять комбинаторику.Не могу понять какую формулу использовать
Добрый день. Уже второй день бьюсь над комбинаторикой. Проблема стоит в том, что не могу понять,...

После загрузки в Image картинки пытаюсь задать пикселю зелёный цвет, но рисуется только чёрный.
Всем доброго времени суток. У меня возникла проблема с объектом Image. После загрузки в него...

Изучаю книгу по алгоритмам, не могу понять псевдокод, указанный в ней
Читаю книгу Рода Стивенса &quot;Алгоритмы. Теория и практическое применение.&quot; Вот не пойму, что здесь...

Как понять поставленную задачу. Не могу понять этот полиморфизм?
A software academy teaches two types of courses: local courses that are held in some of the...

14
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.07.2016, 00:20 2
Цитата Сообщение от Jazzcool Посмотреть сообщение
Начал изучать Java EE
то что вы изучаете это не Java EE, а Java SE
0
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 7
25.07.2016, 00:31  [ТС] 3
Спасибо. Перепутал. Там просто курс рассчитан и на EE далее.
0
1 / 1 / 1
Регистрация: 07.09.2014
Сообщений: 88
25.07.2016, 01:05 4
Jazzcool, вот вам Количество четных чисел массива:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Array {
 
    public static void main(String[] args) {
 
 
        int[] mas = {1, 2, 3, 4, 5, 6, 7};
        int count = 0;
 
        for (int i = 0; i < mas.length; i++) {
 
            if (mas[i] % 2 == 0 ) {
                count++;
            }
 
        }
 
        System.out.print("Количество четных чисел в массиве: " + count);
    }
}
проверяется с помощью оператора "%" - т.е. остатка от деления
0
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 7
25.07.2016, 01:39  [ТС] 5
Пытаюсь вставить Ваш код в свой. И получается какая-то фигня -(

Как мне вывести эту надпись вот тут?

Длина массива = 12
73 12 37 23 48 8 42 92 31 93 49 33
max=93 min=8

Сумма всех чисел массива = 541
разница max/min = 85
Четные значения из массива - 12 48 8 42 92
Количество четных символов - 5
0
1 / 1 / 1
Регистрация: 07.09.2014
Сообщений: 88
25.07.2016, 02:11 6
Jazzcool, пишите что у вас за ошибка хоть. Вот вам ваш код + мой
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
package Lesson;
 
import java.util.Random;
 
public class Array {
 
    public static void main(String[] args) {
 
        Random r = new Random();
        int a = r.nextInt(20);
        int count = 0;
        System.out.println("Длина массива = " + a);
        int mass[] = new int[a];
        for (int i = 0; i < mass.length; i++) {
            mass[i] = r.nextInt(100);
        }
        for (int i = 0; i < mass.length; i++) {
            System.out.print(mass[i] + " ");
 
        }
        System.out.println();
 
        int min = mass[0];
        int max = mass[0];
        for (int i = 0; i < mass.length; i++) {
            if (mass[i] < min) {
                min = mass[i];
            }
            if (mass[i] > max) {
                max = mass[i];
            }
        }
        System.out.println("max=" + max + " min=" + min);
        System.out.println();
 
        int summ = 0;
        for (int i = 0; i < mass.length; i++) {
            summ = summ + mass[i];
        }
 
        System.out.println("Сумма всех чисел массива = " + summ);
 
        int diff = max - min;
        System.out.println("разница max/min = " + diff);
        System.out.println( "Четные числа массива = ");
        for (int i = 0; i < mass.length; i++) {
            if ((mass[i] % 2) == 0) {
                System.out.print( mass[i] + " ");
                count++;
            }
 
        }
        System.out.println();
 
        System.out.println("Количество четных символов - " + count);
 
    }
}
0
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 7
25.07.2016, 02:15  [ТС] 7
Получилось. Пока ещё не привык к строгой очередности выполнения программы. Спасибо, дальше буду разбираться.
0
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
25.07.2016, 10:03 8
Jazzcool, Программирование на любом языке - это написание кода И от 10% до 90% времени его отладка в дебагере.
0
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 7
25.07.2016, 11:48  [ТС] 9
Поиски наименьшего и наибольшего четного значения из массива зашли в тупик...
Вот мой код, и он не работает...
Там, где начинается minc , maxc - (максимальное четное, минимальное четное), это и не работает... -(

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
package Lesson;
 
import java.util.Random;
 
public class Massive {
 
    public static void main(String[] args) {
        Random r = new Random(); 
        int a = r.nextInt(20);
        int count = 0;
        System.out.println("Длина массива = " + a);
        int mass[] = new int[a];
        System.out.print("Все числа из массива - ");
        for (int i = 0; i < mass.length; i++) {
            mass[i] = r.nextInt(100);
        }
        for (int i = 0; i < mass.length; i++) {
            System.out.print(mass[i] + " ");
 
        }
        System.out.println();
 
        int min = mass[0];
        int max = mass[0];
        int minc = mass[0];
        int maxc = mass[0];
    
        for (int i = 0; i < mass.length; i++) {
            if (mass[i] < min) {
                min = mass[i];
            }
            if (mass[i] > max) {
                max = mass[i];
            }
            if (mass[i] < min) {
                if ((mass[i] % 2) == 0) {
                    minc = mass[i];
                }
            }
            if (mass[i] < min) {
                if ((mass[i] % 2) == 0) {
                    minc = mass[i];
                }
        }
        System.out.println("max=" + max + " min=" + min);
        System.out.println();
        
       System.out.println("max четное=" + maxc + " min четное=" + minc);
        System.out.println();
 
        int summ = 0;
        for (int i = 0; i < mass.length; i++) {
            summ = summ + mass[i];
        }
 
        System.out.println("Сумма всех чисел массива = " + summ);
 
        int diff = max - min;
        System.out.println("разница max/min = " + diff);
        System.out.print("Четные числа из массива - ");
        for (int i = 0; i < mass.length; i++) {
            if ((mass[i] % 2) == 0) {
                System.out.print(mass[i] + " ");
                count++;
            }
        
        }
        System.out.println();   
        System.out.println("Количество четных символов - " + count);
   
    }
}
}
0
20 / 20 / 3
Регистрация: 07.02.2014
Сообщений: 233
25.07.2016, 12:27 10
Да тут со скобками беда. Циклы в циклах.
Java
1
2
3
4
5
6
    if (mass[i] < min) {
        if ((mass[i] % 2) == 0) {
        minc = mass[i];
        }
    //вот тут пропущена скобка }
}
Добавлено через 7 минут
Ещё у вас одинаковые проверки на максимальное и минимальное чётное. И первое число int minc = mass[0]; может и не быть чётным.
0
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
25.07.2016, 13:23 11
Я покажу вам примерный путь, а дальше вы сами
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
package cyberforum;
 
import java.util.Arrays;
import java.util.Random;
 
public class CyberForum {
    private static int [] arr;
 
    private static void initArr() {
        Random rndGenerator = new Random();
        int lengthArr = rndGenerator.nextInt(20);
        while (lengthArr <= 7) {
            lengthArr = rndGenerator.nextInt(20);
        }
        arr = new int[lengthArr];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = rndGenerator.nextInt(1000);
        }
    }
 
    private static int getMin(int [] targetArr) {
        int min = targetArr[0];
        for (int i = 1; i < targetArr.length; i++) {
            if (min > targetArr[i])
                min = targetArr[i];
        }
        return min;
    }
 
    public static void main(String[] args) {
        initArr();
        System.out.println(Arrays.toString(arr));
        System.out.println("Минимальный элемент массива = " + getMin(arr));;
 
    }
}
один из возможных вариантов работы
[BASH]
[522, 223, 725, 764, 767, 879, 18, 709, 458, 581, 825]
Минимальный элемент массива = 18
[/BASH]
0
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 7
25.07.2016, 13:43  [ТС] 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
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
package Lesson;
 
import java.util.Random;
 
public class Massive {
 
    public static void main(String[] args) {
        Random r = new Random();
        int a = r.nextInt(20);
        int count = 0;
        System.out.println("Длина массива = " + a);
        int mass[] = new int[a];
        System.out.print("Все числа из массива - ");
 
        for (int i = 0; i < mass.length; i++) {
            mass[i] = r.nextInt(100);
        }
        for (int i = 0; i < mass.length; i++) {
            System.out.print(mass[i] + " ");
 
        }
        System.out.println();
 
        int min = mass[0];
        int max = mass[0];
        int minx = mass[0];
        int maxx = mass[0];
 
        for (int i = 0; i < mass.length; i++) {
            if (mass[i] < min) {
                min = mass[i];
            }
            if (mass[i] > max) {
                max = mass[i];
            }
            if ((mass[i] < minx) && (mass[i] % 2 == 1)) {
                minx = mass[i];
            }
            if ((mass[i] > maxx) && (mass[i] % 2 == 0)) {
                maxx = mass[i];
            }
 
        }
        System.out.println("Максимальное и минимальное значение массива = " + max + "/" + min);
        System.out.println("Максимальное четное и минимальнон нечетное значение массива = " + maxx + "/" + minx);
 
        int summ = 0;
        for (int i = 0; i < mass.length; i++) {
            summ = summ + mass[i];
        }
 
        System.out.println("Сумма всех чисел массива = " + summ);
 
        int diff = max - min;
        int summ2 = maxx + minx;
        System.out.println();
        System.out.println("Разница максимального и минимального значения массива = " + diff);
        System.out.println("Сумма максимального четного и минимального нечетного значения массива = " + summ2);
        System.out.print("Все четные числа из массива - ");
        for (int i = 0; i < mass.length; i++) {
            if ((mass[i] % 2) == 0) {
                System.out.print(mass[i] + " ");
                count++;
            }
 
        }
        System.out.println();
        System.out.println("Количество четных символов - " + count);
 
    }
}
Консоль мне сообщает следующее...
Длина массива = 10
Все числа из массива - 75 66 92 69 20 1 79 0 66 4
Максимальное и минимальное значение массива = 92/0
Максимальное четное и минимальнон нечетное значение массива = 92/1
Сумма всех чисел массива = 472

Разница максимального и минимального значения массива = 92
Сумма максимального четного и минимального нечетного значения массива = 93
Все четные числа из массива - 66 92 20 0 66 4
Количество четных символов - 6

Теперь пытаюсь понять, как отсортировать методом пузырька все числа из массива. Что за чем писать, последовательность и т.д. -)
0
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
25.07.2016, 14:35 13
Очень жаль, что вы не видите отличий вашего подхода и того, что показал вам я
0
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 7
25.07.2016, 14:55  [ТС] 14
Надеюсь все впереди. Еще и месяца не прошло, как я начал изучать программирование. -)
0
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
25.07.2016, 15:24 15
Jazzcool, тем более вам не стоит привыкать к заведомо не верным концептам в написании программ.
0
25.07.2016, 15:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2016, 15:24
Помогаю со студенческими работами здесь

Изучаю Dеlphi. И еще какой язык мне надо изучать, чтобы я могу назвать себе программистом
Изучаю Dеlphi. И еще какой язык мне надо изучать, чтобы я могу назвать себе программистом и...

Пытаюсь понять, не получается
По запросу - Магазины Ярославля 4-9 места занимают какие-то левые сайты, причем в описании...

Пытаюсь понять идеологию MVVM
По предыдущему опыту (не C#) активно использовал MVC. Теперь пытаюсь понять идеологию MVVM. Не могу...

Пытаюсь выполнить задачу уже вторую неделю
учитель дал задачу по делфи написать програму вот собственно содержание: мне хотябы мат. решение

Я самоучка, пытаюсь понять квантовый мир
Привет. Я самоучка, пытаюсь понять квантовый мир, но застрял. Просьба ногами не бить. 1. Формула...

Основы MVC, пытаюсь понять код
Суть в чем, мне на производственной практике дали задание написать веб-приложение для управления...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru