У четных элементов массива поменять знак, а нечетные оставить без изменения — Kotlin — Обсуждение 2778048
Написать метод, который у четных чисел меняет знак, а нечетные числа оставляет без изменения
Помогите с задачей, C#. Заранее спасибо. Написать метод, который у четных чисел меняет знак, а.
Написать метод, который у чётных чисел меняет знак, а нечётные числа оставляет без изменения
Помогите пж!! Написать метод, который у чётных чисел меняет знак, а нечётные числа оставляет без.
Упорядочить нечетные элементы массива по возрастанию их модулей, четные оставить без изменения
Нужна помощь с заданием! написать на ассемблере! Ввести количество элементов массива. Ввести с.
Отсортировать все четные элементы одномерного массива по возрастанию, нечетные оставить без изменения
Дан одномерный массив. Отсортировать все четные элементы по возрастанию, нечетные оставить без.
Вычесть из четных элементов 5, к нечетным прибавить 2, нулевые элементы оставить без изменения
Дан двумерный массив чисел. Вычесть из четных элементов 5, к нечетным прибавить 2, нулевые элементы.
Поменять знак у четных элементов массива
Задан массив A, состоящий из 10 целых элементов. Поменять знак у четных элементов. Вывести.
Поменять знак у четных элементов массива и отсортировать его
Не могу решить Дан массив x1, x2. x20. Требуется заменить четные элементы на числа с.
Четные строки матрицы разделить на ее след, нечетные оставить без изменения
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти.
Как поменять знак числа java
Чтобы поменять знак числа на противоположный, в Java можно использовать унарный оператор — . Для примера напишем метод, который будет менять знак числа на противоположный:
class App public static int changeSign(int num) return -num; > >
App.changeSign(-5); // 5 App.changeSign(7); // -7 App.changeSign(); // 0
Метод, изменяющий знак элементов массива на противоположный
Здравствуйте, столкнулся с небольшой проблемой, на курсах прошли новую тему, но пока она дается мне с трудом, ничего не понятно.
Само ТЗ)
А еще я случайно перепутал раздел. Нужно на C# а я создал в разделе C++ Извиняюсь)Не кидайтесь тапками)
Кликните здесь для просмотра всего текста
Задача 1
Написать метод, который будет принимать в качестве аргумента элемент массива целых чисел и возвращать число с противоположным знаком. Вывести на экран оба массива — изначальный и результирующий
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Изменить знак всех элементов массива X[1. 12] на противоположный и упорядочить его по возрастанию.
Изменить знак всех элементов массива X на противоположный и упорядочить его по возрастанию.Вывести.
Массив: У всех элементов массива, расположенных левее максимального, изменить знак числа на противоположный
В массиве найти наибольший элемент. Вывести на дисплей полученное значение. После этого изменить.
Найти сумму положительных элементов в каждом столбце матрицы, поменяв знак четных элементов на противоположный
Вводится квадратная матрица порядка n. Найти сумму положительных элементов в каждом столбце.
Регистрация: 19.11.2015
Сообщений: 60
Сообщение от Phoenix007
и возвращать число с противоположным знаком.
Так методом должен возвращаться массив с противоположными знаками?
Регистрация: 22.12.2018
Сообщений: 34
Да. Был массив предположил с любыми числами <1,2,3,4,5,-5,-1>
Метод вернет ну то есть умножит каждый элемент массива на -1.1,2,3,4,5,-5,-1>
Регистрация: 19.11.2015
Сообщений: 60
Сообщение было отмечено Phoenix007 как решение
Решение
Вот, собственно, что у меня вышло:
1 2 3 4 5 6 7
public static int[] reverseArrayValues (int[] inp_arr) { int[] out_arr = new int[inp_arr.Length]; for (int i = 0; i out_arr.Length; i++) out_arr[i] = inp_arr[i]*(-1); return out_arr; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
public static void Main(string[] args) { int n = Convert.ToInt32(Console.ReadLine()); int[] original_array = new int[n]; Random rand = new Random(); Console.WriteLine("Исходный массив: "); for (int i = 0; i original_array.Length; i++) { original_array[i] = rand.Next(-21,21); Console.Write(original_array[i]+" "); } Console.WriteLine(); Console.WriteLine("Получившийся массив: "); Console.WriteLine(String.Join(" ", reverseArrayValues(original_array))); }
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
dyra_salva, Он у вас из отрицательного, положительное не возвращает. Math.Abs используйте
Регистрация: 19.11.2015
Сообщений: 60
PoPsa85, провожу юнит-тесты и все нормально. Или я что-то упускаю? Можете привести конкретный пример выполнения, когда такое происходит?
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
dyra_salva, Извиняюсь. Я не доглядел. Все нормально у вас. Только по заданию метод должен элемент принимать а не массив
Регистрация: 19.11.2015
Сообщений: 60
Можно и так, наверное, но выйдет длиннее х)
1 2 3 4 5 6 7 8 9
int[] out_arr = new int[inp_arr.Length]; for (int i = 0; i out_arr.Length; i++) { if (inp_arr[i] 0) out_arr[i] = Math.Abs(inp_arr[i]); else if (inp_arr[i] > 0) out_arr[i] = inp_arr[i]*(-1); } return out_arr;
PoPsa85, ничего, бывает.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Сменить знак максимального по модулю элемента массива на противоположный
такая задача: дана матрица А(4,6). в каждой строке сменить знак максимального по модулю элемента.
Поменять знак на противоположный у всех отрицательных элементов последовательности
Даны натуральное число n, целые числа А1,А2…. Аn. Поменять знак на противоположный у всех.
Изменить знак всех элементов с четными номерами на противоположный
Одномерный массив задан датчиком случайных чисел. Изменить знак всех элементов с четными номерами.
Изменить знак всех элементов с четными номерами на противоположный
Решить: Создать массив с именем А из 10-ти элементов, задав значения его элементов с помощью.
Массивы в Java: создаём, заполняем, применяем
Учимся работать с массивами в Java. Всё разбираем на примерах.
Артём Авдеев
Java-разработчик, преподаёт в Skillbox, осваивает машинное обучение.
Массив в Java (Java Array) — это структура данных, которая хранит набор пронумерованных значений одного типа (элементы массива).
Допустим, у нас есть класс из десяти учеников и нам нужно сохранить их оценки. Для этого можно создать десять переменных:
int mark1 = 4; int mark2 = 3; int mark3 = 5; int mark4 = 3; int mark5 = 2; int mark6 = 4; int mark7 = 4; int mark8 = 3; int mark9 = 4; int mark10 = 2;
А если в нашем классе будет не десяток учеников, а в десять раз больше, не заводить же нам 100 переменных! На выручку приходят массивы.
Как создать одномерный массив
В Java массив объявляется с помощью квадратных скобок и специального слова new.
Такой вот синтаксис пришёл из языка C:
тип_массива название_переменной[] = new тип_массива[размер_массива];
Но в Java предпочтительнее делать так:
тип_массива[] название_переменной = new тип_массива[размер_массива];
Тип массива может быть любым (int, Integer, String, Date, byte, char, Long и так далее).
Инициализация массива по умолчанию
Объявим массив типа int из 10 элементов:
int[] marks = new int[10];
При подобной инициализации все элементы массива будут иметь значение по умолчанию. Для int это 0; для float и double — 0.0; для char — \0; для boolean — false, а для String и любого другого класса это null.
В Java размер массива (длина, протяжённость) определяется при объявлении, а изменить его можно только пересоздав массив.
Доступ к элементам массива
Начнём с одномерного массива. Каждый элемент в нём хранится под своим индексом.
Важно помнить, что в Java нумерация элементов массива начинается с 0. Поэтому индекс первого элемента равен 0, а у последнего определяется размером массива минус один.
Для доступа к элементу массива указывают имя массива и номер ячейки в квадратных скобках. Например, обратимся к первому элементу массива и выведем его значение:
int[] marks = new int[10]; System.out.println(marks[0]); --OUTPUT> 0
В консоли мы получим число 0. Почему ноль — читайте выше, в пункте про инициализацию по умолчанию.
Заполним элементы массива. Для этого обратимся к каждому по индексу и присвоим значения с помощью оператора «=»:
int[] marks = new int[10]; marks[0] = 5; marks[1] = 3; marks[2] = 5; marks[3] = 3; marks[4] = 4; marks[5] = 4; marks[6] = 3; marks[7] = 2; marks[8] = 5; marks[9] = 4;
Инициализация массива на этапе объявления
Теперь у нас есть массив, куда мы записали оценки десяти учеников. С этим уже удобнее работать, чем объявлять 10 переменных, но можно записать ещё короче:
int[] marks = new int[] 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>;
Мы опустили размер массива, поставили фигурные скобки после квадратных и перечислили все значения через запятую. Размер массива теперь определяется числом элементов в фигурных скобках (в нашем случае их тоже 10).
Но нет предела совершенству:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>;
После знака «=» остались только фигурные скобки с перечислением значений через запятую.
Обход одномерного массива
У массива в Java есть специальное поле length. Значение в нём нельзя изменить. Оно возвращает число элементов массива:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; System.out.println("Всего оценок: " + marks.length); --OUTPUT> Всего оценок: 10
А раз мы знаем длину массива и что все его ячейки упорядочены, то остаётся обратиться к ним по очереди — в цикле:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; for (int i = 0; i < marks.length; i++) < System.out.printf("Ученик №%d: оценка %d%n", (i + 1), marks[i]); > --OUTPUT> Ученик №1: оценка 5 --OUTPUT> Ученик №2: оценка 3 --OUTPUT> Ученик №3: оценка 5 --OUTPUT> Ученик №4: оценка 3 --OUTPUT> Ученик №5: оценка 4 --OUTPUT> Ученик №6: оценка 4 --OUTPUT> Ученик №7: оценка 3 --OUTPUT> Ученик №8: оценка 2 --OUTPUT> Ученик №9: оценка 5 --OUTPUT> Ученик №10: оценка 4
С помощью счётчика в цикле for мы получаем индекс каждого элемента.
Напомним! Счётчик должен стартовать с 0, так как нумерация в массиве тоже начинается с 0.
И цикл будет продолжаться «пока счётчик меньше размера массива», а раз индекс последнего элемента на один меньше их количества, то выхода за границы массива в нашем цикле не произойдёт.
int[] marks = 5, 3, 4>; String[] names = "Вася", "Петя", "Маша">; for (int i = 0; i < marks.length; i++) < System.out.printf("%s получает оценку %d%n", names[i], marks[i]); > --OUTPUT> Вася получает оценку 5 --OUTPUT> Петя получает оценку 3 --OUTPUT> Маша получает оценку 5
Массив можно обойти и в цикле foreach (подробнее о циклах):
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; for (int mark : marks) < System.out.printf("Оценка %d%n", mark); > --OUTPUT> Оценка 5 --OUTPUT> Оценка 3 --OUTPUT> Оценка 5 --OUTPUT> Оценка 3 --OUTPUT> Оценка 4 --OUTPUT> Оценка 4 --OUTPUT> Оценка 3 --OUTPUT> Оценка 2 --OUTPUT> Оценка 5 --OUTPUT> Оценка 4
И в обратном порядке:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; for (int i = marks.length - 1; i >= 0; i--) < System.out.printf("Ученик №%d: оценка %d%n", (i + 1), marks[i]); >
Здесь счётчик стартует со значения на один меньше размера массива, и цикл продолжается «пока счётчик не меньше 0».
Можем пройтись и только по элементам с чётными индексами:
int[] marks = 5, 3, 5, 3, 4, 4, 3, 2, 5, 4>; for (int i = 0; i < marks.length; i += 2) < System.out.printf("Ученик №%d: оценка %d%n", (i + 1), marks[i]); >
А вот как заполнить массив случайными значениями:
int[] marks = new int[10]; Random random = new Random(); for (int i = 0; i < marks.length; i ++) < marks[i] = 2 + random.nextInt(4); >
N-мерные массивы
Размерность массива определяется тем, сколько индексов нужно, чтобы однозначно указать на элемент в массиве.
Массивы бывают одномерными (векторы), двумерными (матрицы), трёхмерными и так далее. То есть можно создавать не просто массивы, но и массивы массивов, а также массивы массивов массивов и так далее.
Рассмотрим вариант с двумерным массивом. Остальные многомерные массивы создаются похоже.
Объявление двумерного массива
Чтобы создать двумерный массив в Java, укажем его размеры в квадратных скобках:
int[][] mas = new int[3][4];
Доступ к элементу подобного массива выглядит так:
int[][] mas = new int[3][4]; mas[0][1] = 2;
Мы присвоили значение 2 элементу с индексами [0,1].
Для простоты представим двумерный массив в виде таблицы. Вот как выглядит наш массив (столбцы — это первый индекс в квадратных скобках, а строки — второй):
[0,0] = 0 | [1,0] = 0 | [2,0] = 0 |
---|---|---|
[0,1] = 2 | [1,1] = 0 | [2,1] = 0 |
[0,2] = 0 | [1,2] = 0 | [2,2] = 0 |
[0,3] = 0 | [1,3] = 0 | [2,3] = 0 |
Несложно представить двумерный массив таблицей, а трёхмерный — кубом, но вот с массивами большей размерности так уже не получится.
Массивы внутри массива в Java могут быть разной длины. Зададим двумерный массив, где размер третьего массива (по индексу второго) равен двум элементам, а размер всех остальных — трём:
int[][] mas2 = 1, 3, 5>, 1, 3, 4>, 1, 3>>;
Как помним, размер массива нам не изменить, но мы можем присвоить новый массив элементу с нужным индексом.
Если мы объявляем двумерный массив так:
int[][] mas = new int[3][4];
то размер каждого вложенного массива будет равен четырём элементам.
А теперь заменим массив под индексом 1 (длиной в четыре элемента) массивом из двух элементов:
int[][] mas = new int[3][4]; mas[1] = new int[2];
Как видно из примера, мы можем обращаться к внутренним массивам нашего двумерного массива, а не только к значениям в этих массивах.
Проверим, что размер массива под индексом 1 теперь равен двум элементам. Для этого используем цикл с выводом в консоль:
for (int i = 0; i < mas.length; i++) < System.out.printf("Индекс массива в двумерном массиве: %d; длина массива: %d%n", i, mas[i].length); > --OUTPUT> Индекс массива в двумерном массиве: 0; длина массива: 4 --OUTPUT> Индекс массива в двумерном массиве: 1; длина массива: 2 --OUTPUT> Индекс массива в двумерном массиве: 2; длина массива: 4
Для обхода элементов двумерного массива применяем уже два цикла: