Итак формулировка задачи такова «найти все четные элементы массива, вывести на экран, и подсчитать их количество».
Для начала определим, что такое четное число вообще? правильно, четными числами называются числа, которые делятся на 2 без остатка (иногда еще говорят кратны 2).
Теперь определимся как это реализовать. В паскале есть такой замечательный оператор mod, который нам как раз и необходим. Сей оператор отвечает за деление с остатком, а если быть точнее, применив данный оператор, вы получаете остаток от деления. Например 11 разделить на 2. Использовав mod мы получим в ответе число 1.
11/2 = 5 (остаток 1)
Теперь как это все записать в паскале. Пусть переменная х — это остаток
x := 11 mod 5
Вернемся к нашей задаче, где нас интересует нахождение четных элементов массива. Для ее решения нужно подойти к составлению кода логически .
Каков остаток при делении четного числа на 2? Верно, остаток всегда равен нулю. (Подробнее о четности вы можете прочесть в статье оператор div и оператор mod) То есть нам просто нужно использовать цикл с условием вида
if s[i] mod 2 = 0 then
Ну а теперь код всей задачи (как в помните нам еще было необходимо подсчитать количество четных чисел и вывести их всех на экран)
var i,x,y:integer;s:array [1..10] of integer;
begin
for i:=1 to 10 do
read(s[i]);
for i:=1 to 10 do
if s[i] mod 2=0 then begin
writeln (s[i]);
y:=y+1;
end;
writeln;
writeln(‘количество четных чисел = ‘,y)
end.
Не могу разобраться, как в консоли вывести элементы массива: все чётные числа от 1 до 20. Помогите, пожалуйста.
public static void main(String[] args) {
int [] a = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
for (int i = 0; i < a.length; i++) {
a[i] = (i+1)*2;
System.out.println(Arrays.toString(a));
}
}
Klym
1,3087 серебряных знаков20 бронзовых знаков
задан 12 ноя 2016 в 19:23
1
как в консоли вывести элементы массива: все чётные числа от 1 до 20
Вот так:
public static void main(String[] args) {
int [] a = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
for (int i = 0; i < a.length; i++) {
System.out.printf( "%dn", a[i] );
}
}
Или у вас что-то не так либо с задачей, либо с входными данными.
ответ дан 12 ноя 2016 в 19:40
PinkTuxPinkTux
9,05613 серебряных знаков26 бронзовых знаков
Отвечаю с планшета по этому за синтаксис не ручаюсь
For(int=0;i<a.length();i++){
If(a[i]%2==0)
System.out.println(a[i]);
}
ответ дан 12 ноя 2016 в 20:30
JVicJVic
3,2691 золотой знак15 серебряных знаков35 бронзовых знаков
Если нужно вывести все четные числа массива в котором могут быть нечетные числа, можно использовать данный подход:
int [] array = {2, 3, 5, 8, 10, 11, 14, 15, 18, 20};
for(int i=0;i<array.length;i++)
{
if(array[i]%2==0)
{
System.out.println("Index: "+i+"; Number: "+array[i]);
}
}
Если нужно вывести только числа, то и foreach’ем можно обойтись
for (int number : array)
if (number % 2 == 0)
System.out.println(number);
Вывод:
Index: 0; Number: 2
Index: 3; Number: 8
Index: 4; Number: 10
Index: 6; Number: 14
Index: 8; Number: 18
Index: 9; Number: 20
ответ дан 29 ноя 2016 в 13:22
Shadevskiy 5 / 5 / 11 Регистрация: 25.01.2015 Сообщений: 205 |
||||||||
1 |
||||||||
Найти четные числа в массиве31.03.2015, 02:58. Показов 22539. Ответов 4 Метки нет (Все метки)
Скажите,как сделать так,чтобы после ввода чисел , они входили в массив и можно было бы узнать четные/нечетные.
Если бы тут было бы просто число , то можно было бы сделать так:
Но мне нужно , чтобы он либо во время работы смотрел : делится на 2 – четные , нет – нечетные, либо , чтобы он как-то их закинул в массив , а от туда точно так же делить на 2 и т.д….
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
31.03.2015, 02:58 |
Ответы с готовыми решениями: В одномерном массиве, элементы которого – целые числа, удалить все четные числа В одномерном массиве, элементы которого -целые числа, удалить все четные числа Подсчитать четные числа в массиве Определить, упорядочены ли в массиве по возрастанию четные числа 4 |
Akrage 5 / 5 / 4 Регистрация: 26.03.2015 Сообщений: 28 |
||||
31.03.2015, 03:32 |
2 |
|||
Сообщение было отмечено Shadevskiy как решение РешениеShadevskiy, надо всего лишь добавить условие в цикл
1 |
Shadevskiy 5 / 5 / 11 Регистрация: 25.01.2015 Сообщений: 205 |
||||
31.03.2015, 03:53 [ТС] |
3 |
|||
Пишет , что все числа нечётные, пытался сам переделать,даже что-то получилось , а потом опять стал писать
0 |
Неэпический 17812 / 10584 / 2043 Регистрация: 27.09.2012 Сообщений: 26,623 Записей в блоге: 1 |
|
31.03.2015, 04:01 |
4 |
Shadevskiy, выделяйте код тегами:
0 |
Akrage 5 / 5 / 4 Регистрация: 26.03.2015 Сообщений: 28 |
||||
31.03.2015, 11:56 |
5 |
|||
Shadevskiy, ты объявляешь массив, но не заполняешь его
A = new int [n]; cout<<“Ввести числа массива : “<<endl; int *B; for (int i=0; i<n;i++) cin>>b; Ты в цикле зачем-то считываешь число b, когда нужно считывать A[i];
B = new int [b]; int sumNCh=0;//нечотные for(int i=0;i<n;i++) if (B[i]%2!=0)//Проверка на нечетность sumNCh++; Вот как должен выглядеть код по твоей задумке
0 |
Как найти все чётные числа в двумерном массиве и сохранить их в файл?
Здравствуйте, мне нужно найти все чётные числа в двумерном массиве и сохранить их в файл.
Написал вот такой код, но он не работает. Подскажите, пожалуйста, в чем дело и как исправить?
static void ex6(int[][] A, int n, int m) throws IOException {
FileWriter fw = new FileWriter("ParCol.txt");
int[][] posA = new int[n][m];
for(int i = 0; i < A.length; i++) {
for(int j = 0; j < A.length; j++) {
if(A[i][j] % 2 == 0) {
posA[i][j] = A[i][j];
}
}
}
fw.write(n + " " + m + "n");
for(int i = 0; i < posA.length; i++) {
for(int j = 0; j < posA[i].length; j++) {
fw.write(posA[i][j] + " ");
}
fw.write("n");
}
}
-
Вопрос заданболее трёх лет назад
-
782 просмотра
Пригласить эксперта
1. Вложенный цикл у Вас некорректен.
Вместо for(int j=0;j <A.length; j++)
нужно прописать for(int j=0 ;j<A[i].length; j++)
.
A.length для двумерного массива – это количество строк, а A[i].length – количество элементов в каждой i-й строке этого массива. То есть Вы сначала получаете строку в виде массива, потом перебираете каждый элемент полученного массива-строки.
2. Размерность массива A – исходя из п. 1. n = A.length, m = A[0].length. То есть можно так (при условии, что массив не пустой): int[][] posA=new int[A.length][A[0].length]
, и тогда параметры n и m не нужны.
-
Показать ещё
Загружается…
23 мая 2023, в 19:34
10000 руб./за проект
23 мая 2023, в 19:03
750 руб./за проект
23 мая 2023, в 18:54
3000 руб./за проект
Минуточку внимания
Если нужно вывести элементы на четных позициях, то достаточно воспользоваться срезом от начала до конца с шагом 2
l = [0, 1, 2, 3, 4, 5, 6]
l[::2] # [0, 2, 4, 6]
А если нужно вывести элементы четные по значению, то можно собрать новый массив, отфильтровав исходный
l = [3, 2, 5, 7, 1, 8, 0, 11]
[x for x in l if x % 2 == 0] # [2, 8, 0]