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

Ошибка на 9 строке?

12.11.2018, 14:04. Показов 615. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Scanner;
public class Program
{
    public static void main(String[] args) {
        Scanner m = new Scanner(System.in);
        int n =0;
        int[] arr= new int[n];
        while(n<3){
            n=m.nextInt();
            if(n<3){
                System.out.println("Enter number which will be smaller then 3");
            }
        }
    }
}
Что за ошибка и почему после ввода n меньше чем три, ввод nне повторяется?
Миниатюры
Ошибка на 9 строке?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2018, 14:04
Ответы с готовыми решениями:

Найти все числа в строке и вывести каждое число в отдельной строке (ошибка в коде)
Помогите пожалуйста с кодом. Задание такое: Найти все числа в строке, каждое число вывести в...

В чем ошибка?По одной строке нормально в базу заходят,а две сразу вылетает ошибка?
INSERT INTO `jos_menu` (`id`, `menutype`, `name`, `alias`, `link`, `type`, `published`, `parent`,...

Подскажите ,где ошибка в php? В какой-то строке ошибка
Здравствуйте. На вордпресс нашёл плагин на форуме.Тема закрыта,спросить не у кого. Пишут...

Ошибка TNS-01150: Указан неверный адрес имени прослушивателя NL-00303: синтаксическая ошибка в NV-строке
после команды lsnrctl status выдает такую ошибку: TNS-01150: Указан неверный адрес имени...

15
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
12.11.2018, 15:30 2
А что задумывалось изначально? Какое задание?
Программа слегка бессмысленна)
Ввод как раз-таки повторяется, если введена n < 3.
Если введена n > 3, тогда выполнение программы заканчивается. Поскольку перестает выполняться условие while (n < 3).
0
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 246
12.11.2018, 17:53  [ТС] 3
Условие задачи:
1. Пользователь должен ввести с клавиатуры размер массива - натуральное число больше 3. Введенное пользователем число сохраняется в переменную n.
2. Если пользователь ввёл не подходящее число, то программа должна просить пользователя повторить ввод.
3. Создать массив из n случайных целых чисел из отрезка [0;n] и вывести его на экран.
4. Создать второй массив только из чётных элементов первого массива, если они там есть, и вывести его на экран.
0
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
12.11.2018, 18:05 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
    public static void main(String[] args){
        while (true) {
            Scanner scanner = new Scanner(System.in);
            System.out.println ("Enter the size of array: ");
            int n = scanner.nextInt();
            if (n < 3) {
                System.out.println("The size should be 3 or more, try again");
                continue;
            }
 
            int[] array = new int[n];
            Random random = new Random();
            for (int i = 0; i < array.length; i++) {
                array[i] = random.nextInt(n);
            }
 
            System.out.println(Arrays.toString(array));
 
            int[] array2 = new int[array.length/2];
 
            for (int i = 0; i < array.length; i++) {
                int j = i/2;
                if (i % 2 != 0)
                    array2[j] = array[i];
            }
 
            System.out.println(Arrays.toString(array2));
        }
    }
0
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
12.11.2018, 18:22 5
Цитата Сообщение от NiceJacket Посмотреть сообщение
if (n < 3)
n < 4

Цитата Сообщение от NiceJacket Посмотреть сообщение
int[] array2 = new int[array.length/2]
судя по оговорке "если они там есть", нужно найти именно четные числа, а не элементы массива на четных позициях
поэтому мы не можем заранее знать размер второго массива
1
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 246
12.11.2018, 19:33  [ТС] 6
То есть мой код работает нормально у вас и только солерне он выдает ошибку? Мне просто это важно знать
0
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
12.11.2018, 19:51 7
Я описал выше, как он работает.

Добавлено через 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
public static void main(String[] args) {
            while (true) {
                Scanner scanner = new Scanner(System.in);
                System.out.println ("Enter the size of array: ");
                int n = scanner.nextInt();
                if (n < 4) {
                    System.out.println("The size should be 4 or more, try again");
                    continue;
                }
 
                int[] array = new int[n];
                Random random = new Random();
                int counter = 0;
                for (int i = 0; i < array.length; i++) {
                    array[i] = random.nextInt(n);
                    if (array[i] % 2 == 0)
                        counter++;
                }
 
                System.out.println(Arrays.toString(array));
 
                if (counter > 0) {
                    int[] array2 = new int[counter];
                    counter = 0;
                    for (int i = 0; i < array.length; i++) {
                        if (array[i] % 2 == 0) {
                            array2[counter] = array[i];
                            counter++;
                        }
                    }
                    System.out.println(Arrays.toString(array2));
                } else {
                    System.out.println("there is no even elements in your array!");
                }
            }
        }
0
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
12.11.2018, 20:59 8
Цитата Сообщение от Anton8800 Посмотреть сообщение
То есть мой код работает нормально


Цитата Сообщение от Anton8800 Посмотреть сообщение
Java
1
2
        int n =0;
        int[] arr= new int[n];
Никаких мыслей не возникает?
1
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
12.11.2018, 21:18 9
так вопрос был работает ли приложение) да, оно компилится и работает. Ведь, создать массив с длиной 0 можно, просто иницииализировать его нельзя. В его коде инициализации нет, потому всё работает)
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
12.11.2018, 21:48 10
Цитата Сообщение от NiceJacket Посмотреть сообщение
коде инициализации нет
А это что?
Java
1
2
int n =0;
int[] arr= new int[n];
0
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
12.11.2018, 21:56 11
это создан массив нулевой ёмкости (что возможно, по крайней мере в java, т.е. это уже не null), но добавления элементов в него не осуществляется. При попытке обращения к любому элементу этого массива будет array index out of bound exception. Чего товарищ не делает в предоставленном коде)
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
12.11.2018, 22:00 12
NiceJacket, на самом деле это инициализация переменной arr массивом нулевой длинны. Как с этим массивом работать - дело десятое.
0
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
12.11.2018, 22:02 13
Совершенно верно, возможно, вы придираетесь к словам. Под инициализацией я подразумевал инициализацию массива значениями.
0
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
17572 / 10325 / 2820
Регистрация: 21.10.2017
Сообщений: 22,388
12.11.2018, 22:04 14
Инициализация (от англ. initialization, инициирование) — создание, активация, подготовка к работе, определение параметров.
...
1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
12.11.2018, 22:18 15
Цитата Сообщение от NiceJacket Посмотреть сообщение
я подразумевал инициализацию массива значениями.
Допустим. Тут инициализация есть?
Java
1
int[] arr = new int[10];
А вообще не понимаю зачем вводить какую-то свою никому не известную терминологую.
0
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
12.11.2018, 22:25 16
Тут есть описание массива - int[10]. А инициализация элементов происходит нулями по умолчанию
0
12.11.2018, 22:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2018, 22:25
Помогаю со студенческими работами здесь

Ошибка синтаксиса на 10 строке (ошибка 1064)
//ошибка синтаксиса на 10 строке (ошибка 1064) CREATE TABLE InternetProvayder.Contract (...

Ошибка 85 в строке Else
var A: integer; begin writeln('Введите число:'); read(A); if A&gt;0 then ...

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

Ошибка в 5 строке
A = int(input()) B = int(input()) C = int(input()) if A &lt; 0: A = A+1 Ans = A - B + C if Ans...


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

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