Как найти максимальный нечетный элемент массива

#include <stdio.h>
 
int main(void)
{   
    int lim, i = 0,  max;
    
    printf("Введите количество элементов в массивеn");
    scanf("%d", &lim);
 
    int mass[lim];
 
    for(i = 0; i < lim; ++i)
    {
        mass[i] = 0;
    }
    i = 0;
 
    printf("Введите элемент массиваn");
 
    while(scanf("%d", &mass[i]) && i < lim-1)
    {
        printf("Введите следующий элемент массива или другую клавишу для окончания вводаn");
        ++i;
    }
    for(i = 0, max = 0; i < lim; ++i)
    {
        if(mass[i] > max && mass[i]%2 != 0)
        {
            max = mass[i];
        }
    }
    if(max == 0)
    {
        printf("В массиве нет нечетных чиселn");
    }
    else if(max != 0)
    {
    printf("Максимальный нечетный элемент массива = %dn", max);
    }
 
return 0;
}

Решение на python задач с номером 25 егэ по информатике на поиск максимального элемента массива

В задачах с номером 25 егэ по информатике на поиск максимального элемента необходимо организовать ввод массива с клавиатуры, найти максимальный элемент массива, удовлетворяющий определенному условию. Разберем пример программы на python, которая ищет максимальный четный и максимальный нечетный элемент массива.
Код на Python для ввода с клавиатуры массива заданного размера. Подробно о работе с массивами в Python
a = []
n=10
for i in range(0, n):
    a.append(int(input()))

Для максимального четного и нечетного элемента введем переменные и сначал присвоим им занечния первого элемента массива

maxc=a[0]
maxn=a[0]
В цикле for переберём все элементы массива и с помощью оператора условия в python if
сравним каждый нечетный элемент массива с текущим значением максимума, если этот элемент будет больше, то текущему максимуму присвоим значение этого элемента массива. 
Чтобы проверить, является ли переменная четной, в условии нужно использовать выражение
переменная%2==0
Чтобы проверить, является ли переменная нечетной, в условии нужно использовать выражение
переменная%2!=0
Чтобы одновременно выполнялись оба условия, в условии if необходимо использовать логическую операцию and Подробно об условиях If в python
for i in range(0, n):
    if a[i]%2==0 and a[i]>maxc:
       maxc=a[i] 
    if a[i]%2!=0 and a[i]>maxn:
       maxn=a[i]

Полная программа на Python, которая ищет максимальный четный и нечетный элемент массива
a = []
n=10
for i in range(0, n):
    a.append(int(input()))
maxc=a[0]
maxn=a[0]
for i in range(0, n):
    if a[i]%2==0 and a[i]>maxc:
       maxc=a[i] 
    if a[i]%2!=0 and a[i]>maxn:
       maxn=a[i]
print(‘максимальный четный элемент’,maxc)
print(‘максимальный нечетный элемент’,maxn)
Разберем решение на python задачи с номером 25 егэ по информатике на поиск максимального элемента массива.
Дан целочисленный массив из 10 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно Необходимо написать программу, которая позволяет найти и вывести максимальное значение среди двухзначных элементов массива, делящихся на 7. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом кратно 7, то вывести сообщение «Не найдено».

Организуем ввод массива с клавиатуры в python
a = []
n=10
for i in range(0, n):
    a.append(int(input()))
max=1

Введем переменную max в которую будем записывать максимальное значение двузначных элементов массива. присвоим ей в начале программы значение 1. Если элементы удовлетворяющие нужному нам условию не будут найдены, то значение переменной max останется равным 1, это будет говорить о том что элементы не найдены
В цикле for перебираем все элементы массива и ищем максимум среди двузначных чисел 
Двузначные элементы лежат в диапазоне от 10 до 99. Чтобы элемент был двузначным и делился на 7 в операторе условия необходимо, чтобы выполнялось сразу три условия одновременно 
a[i]>9, a[i]<100, a[i]%7==0
Чтобы выполнялись все три условия необходимо в операторе условия If использовать логическую операцию and
for i in range(0, n):
    if a[i]>9 and a[i]<100 and a[i]%7==0:
       max=a[i]

В конце программы  производится проверка найден ли хотя бы один элемент удовлетворяющий условию задачи, если элементы не найдены то выводится сообщение элементы не найдены
if max==1:
    print(‘элементы не найдены’)
else:
    print(‘максимальный элемент ‘, max)

Полная программа на python для поиска максимального двузначного элемента массива кратного 7
a = []
n=10
for i in range(0, n):
    a.append(int(input()))
max=1
for i in range(0, n):
    if a[i]>9 and a[i]<100 and a[i]%7==0 and a[i]>max:
       max=a[i] 
if max==1:
    print(‘элементы не найдены’)
else:
    print(‘максимальный элемент ‘, max)

Перейти к курсу python

Полезно почитать по теме решение на python задач с номером 25 егэ по информатике на тему массивы

Решение задач на python на массивы с накопителем
Решение задач на python на массивы на пары элементов массива

Поделиться:

Комментарии ()

Нет комментариев. Ваш будет первым!

Главная » Решебник Абрамяна » Одномерные массивы: группа Array (1-140) » Array29. Решебник Абрамяна М. Э.

Array29. Дан массив A размера N. Найти максимальный элемент из его элементов с нечетными номерами: A1, A3, A5, … .

Решение Pascal

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

program Array29;

var

  a:array[1..10] of integer;

  N,i,Max:Integer;

begin

  Write(‘N: ‘);

  Readln(N);

  for i:=1 to N do

   begin

    write(i,‘ :’);

    readln(a[i]);

   end;

  i:=1;

  Max:=a[1];

  While (i<=N) do    

  begin    

if a[i]>Max then Max:=a[i];

    i:=i+2;

   end;

  Writeln(Max);

end.

Решение C

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

#include <stdio.h>

int main(void)

{

    int a[10];

    int n;

    printf(«N: «);

    scanf(«%i»,&n);

    int i;

    for (i=0; i<n; ++i){

        printf(«a[%i] : «,i+1);

        scanf(«%i»,&a[i]);

    }

    int max = a[0];

    for (i=0; i<n; i+=2) {

        if (a[i]>max) max=a[i];

    }

    printf(«%in»,max);

    return 0;

}

Решение С++

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

#include <iostream>

using namespace std;

int main(){

    int a[10];

    int n;

    cout << «N: «;

    cin >> n;

    int i;

    for (i=0; i<n; ++i){

        cout << «a[« << i+1 << «]: «;

        cin >> a[i];

    }

    int max = a[0];

    for (i=0; i<n; i+=2) {

        if (a[i]>max) max=a[i];

    }

    cout << «Max: « << max << endl;

    return 0;

}

Оцените решение

Загрузка…

Array29. Решебник Абрамяна М. Э.: 3 комментария

  • Серега

    28.10.2020

    Permalink

    Это 2 мне поставили 2

    Ответ

    • Портал uTeacherАвтор записи

      15.12.2020

      Permalink

      Задача решена верно. Выдает тот результат, который требуется. Проблема не в решении))

      Ответ

  • Zohirjon

    21.10.2022

    Permalink

    JAVA
    import java.util.Scanner;

    public class arr29 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print(«Enter N juft son: «);
    int n = sc.nextInt();

    int[] a = new int[10];

    for (int i = 0; i < n; i++) {
    a[i] = sc.nextInt();
    }

    int max=a[1];
    for (int i = 1; i max) max=a[i];
    }
    System.out.println(max);
    }
    }

    Ответ

Добавить комментарий

Итераторы[править]

Дан целочисленный массив. Найти количество чётных элементов.[править]

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.select{ |i| i.even? }.size

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.select{ |i| i%2 == 0 }.size

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.select{ |i| i[0].zero? }.size

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.find_all{ |i| i%2 == 0 }.size

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.inject(0){ |sum, i| (i%2 == 0) ? (sum+1) : sum }

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.count{ |i| i.even? }

Замечания по решению: Ruby 1.9.1

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.delete_if{ |i| i.odd? }.size

Замечания по решению:

Дано натуральное число. Необходимо проверить, является ли оно совершенным.[править]

Возможное решение:

m = 20
a = Array.new(m-1){ |i| i+1 }
b = a.select{ |x| m % x == 0 }
p( b.inject(0){ |result,elem| result+elem } == m )

Замечания по решению:

Возможное решение:

n=8128
n1=0
(1...n).each{|d| n1+=d if n%d==0}
p n==n1

Замечания по решению:

Возможное решение:

def is_perfect(num)
  ((1...num).to_a.select {|n| num%n == 0}).reduce(:+) == num
end

Замечания по решению:

Дан целочисленный массив. Найти количество его локальных максимумов.[править]

Возможное решение:

m = [1,2,3,2,3,4,2,4,6,7]
p( (1..m.size-2).to_a.select{ |i| (m[i] > m[i-1])&&(m[i] > m[i+1]) }.size )

Замечания по решению:

Возможное решение:

maccuB = [4, 8, 6, 5, 1, 2, 3, 5, 4, 8, 9, 6]
p (1...maccuB.size-1).select{ |x| (maccuB[x] > maccuB[x-1])&&(maccuB[x] > maccuB[x+1]) }.size

Замечания по решению:

Возможное решение:

require 'enumerator'
m = [1,2,3,2,3,4,2,4,6,7]
cnt=0
m.each_cons(3){|a,b,c| cnt+=1 if a<b and b>c}
p cnt

Замечания по решению:

Дан целочисленный массив. Проверить, чередуются ли в нем положительные и отрицательные числа.[править]

Возможное решение:

m = [5, -12, 5, -12, 9, -25]
p (1...m.size-1).all?{ |i| ((m[i-1] < 0) && (m[i+1] < 0)) || ((m[i-1] > 0) && (m[i+1] > 0)) }

Замечания по решению: тут ошибка — не работает для полностью положительного или полностью отрицательного массива. Не хватает проверки текущего значения:

((m[i] > 0) && (m[i-1] < 0) && (m[i+1] < 0)) || ((m[i] < 0) && (m[i-1] > 0) && (m[i+1] > 0))

Возможное решение:

maccuB = [1, -2, 5, -4]
p (0..maccuB.size-2).all?{ |x| (maccuB[x] * maccuB[x+1]) < 0 }

Замечания по решению:

Возможное решение:

array = [1,-2,3,-4]
(0..array.size - 1).all? { |i| (array[0] < 0) ? (i.even? ? array[i] < 0 : array[i] >= 0 ) : (i.even? ? array[i] >= 0 : array[i] < 0) }

Дан целочисленный массив и отрезок a..b. Необходимо найти элементы, значение которых принадлежит этому отрезку.[править]

Возможное решение:

m = [1, 2, 3, 4, 5]
ab = (3..5)
p m&ab.to_a

Замечания по решению:

Возможное решение:

m = [1, 2, 3, 4, 5]
ab = (3..5)
p m.select{ |i| ab.include?( i ) }

Замечания по решению:

Возможное решение:

m = [1, 2, 3, 4, 5]
a = 1
b = 20
p m.select{ |x| x>=a && x<=b }

Замечания по решению:

Возможное решение:

m = [1, 2, 3, 4, 5]
a,b = 2,5
p ( m - (m - ((a..b).to_a)) )

Замечания по решению:

Дано число А и натуральное число N. Найти результат следующего выражения 1 + А + А*2 — А*3 + … + ((-1)**N)*А*N.[править]

Возможное решение:

A,N = 5,7
diapazon = 4..N
p diapazon.inject(1 + A + A*2 - A*3){ |sum,i| sum + (-1**i)*A*i }

Замечания по решению:
в данном решение допущена серьёзная ошибка. Приоритет у операции ** (возведение в степень) выше чем у операции -. поэтому сначала 1**i, а затем результат берётся с другим знаком. фрагмент кода следует заменить на { |sum,i| sum + ((-1)**i)*A*i }

Ошибка была допущена еще в задании — не хватало тех же скобок, поправил. Кроме того, похоже что перед А должен стоять «-» чтобы последовательность сохранялась, ну да ладно — покупатель всегда прав.

Дано вещественное число R и массив вещественных чисел. Найти элемент массива, который наиболее близок к данному числу.[править]

Возможное решение:

R,macc = 13.0, [3.1, 7.2, 10.3, 15.5]
macc = macc.sort
b = macc.select{ |i| i<R }
c = macc.select{ |i| i>R }
d = b.max
e = c.min
if (R-d) > (e-R)
  puts e 
else
  puts d 
end

Замечания по решению:

Возможное решение:

a, R = [1.2,2.5,3.1,4.3,2.1,3.6,5.7], 4.0
p a.sort_by{ |i| (i-R).abs }[0]

Замечания по решению:
Не полностью верное решение!При нескольких равноудаленных элементах выводится только одно значение!

В принципе задачи по нахождению мин или макс в массиве предполагают находить хотя бы одно соответствующее решение. Задание: «Найти элемент!!! массива».

Возможное решение:

R,arr = 13.0, [3.1, 7.2, 10.3, 10.6, 15.5]
require 'enumerator'
arr.each_cons(2){|a,b| if a <=R and b>=R then if R-a<=b-R then p a else p b end end}

Замечания по решению: неправильно и не читабельно, насколько я понял, ошибка в том что не дописан else для первого if.

Возможное решение:

arr, a = [ 1.3, 1.51, 1.46, 0.33, 2.45 ], 1.48
arr.map! { |l| (l-a).abs }.index(arr.min)

Замечания по решению: неточность — нужно найти элемент массива, а не его индекс
Замечания по решению: находится индекс минимальной разницы в массиве разниц

Возможное решение:

R,m = 13.0, [3.1, 7.2, 10.3, 15.5]
dif = m.map{|elem| (R - elem).abs}
p m[dif.index(dif.min)]

BlindMan (обсуждение) 22:12, 28 сентября 2012 (UTC)

Возможное решение:

arr_f = Array.new(100){|x| x = rand(0.0 .. 1.5)}
r = rand(0.0 .. 1.5)
val = 0
n = (arr_f[0] - r).abs
for i in 0..arr_f.length-1
 (arr_f[i]-r).abs < n ? (val = arr_f[i]; n = (arr_f[i]-r).abs) : n   
end
print("---Наболее близкое значение к  #{r} это #{val}  ", "n")

Дан целочисленный массив. Необходимо найти максимальный нечетный элемент.[править]

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.select{ |i| i.odd? }.max

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p( a.select{ |i| i%2 == 1 }.max )

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5, 6, 7, 8]
p a.reject{ |i| i.even? }.max

Замечания по решению:

Дано целое число. Необходимо найти все натуральные делители этого числа.[править]

Возможное решение:

a = 12
b = (1..a)
p( b.select{ |n| (a%n==0) } )

Замечания по решению:

Возможное решение:

n = 20
mas = (1..n).to_a
p( mas.find_all{ |x| x%n == 0 } )

Замечания по решению:

Решение аналогично предыдущему, find_all — синоним select; переводить диапазон в массив — лишнее.

Дан целочисленный массив. Вывести индексы элементов, которые меньше своего левого соседа, и количество таких чисел.[править]

Возможное решение:

m = [5, 4, 1, 3, 2, 7, 0, 1, 7]
temp = (1...m.size).select{ |x| m[x] < m[x-1] }
p temp, temp.size

Замечания по решению:

Дан целочисленный массив и отрезок a..b. Необходимо найти количество элементов, значение которых принадлежит этому отрезку.[править]

Возможное решение:

m = [1, 2, 3, 4, 5]
ab = (3..5)
p m.count{ |i| ab === i }

Замечания по решению:

Возможное решение:

m = [1, 2, 3, 4, 5]
a,b = 3,5
m.select{ |i| (a..b).include?( i ) }.size

Замечания по решению:

Возможное решение:

m = [1, 3, 4, 5, 6, 9, 3]
indd = 0..m.size-1
a,b = 3,7
p indd.select{ |n| (m[n] >= a)&&(m[n] <= b) }.size

Замечания по решению:

Возможное решение:

m = [10,1,51,12,14,100]
s = (1..10)
p m.select{|i| s === i}.length

Замечания по решению:

Дан целочисленный массив. Необходимо вывести вначале его элементы с четными индексами, а затем — с нечетными.[править]

Возможное решение:

m = [1,2,3,4,5,6,7]
s = (0..m.size-1).to_a
p s.partition{ |i| i[0].zero? }.flatten.map{ |i| m[i] }

Замечания по решению:

Возможное решение:

a = [1,2,3,4,5,6]
(0...a.size).partition{ |x| x%2 == 0 }.flatten.map{ |x| a[x] }

Замечания по решению:

Возможное решение:

arr = [3, 7, 10, 6, 15]

p arr.partition{|e| arr.index(e)%2 == 0}

Замечания по решению:
Решение неверно: дает неверный результат в массиве с несколькими одинаковыми числами.

Возможное решение:

m = [1,2,3,4,5,6,7,8,9,10]
0.step(m.size-1, 2){|i| print "#{m[i]} " }
1.step(m.size-1, 2){|i| print "#{m[i]} " }

Замечания по решению:

Возможное решение:

a = [7,0,4,6,0,3,6,9,0]
(0...a.size).each { |i| i.odd? a.push(a.delete_at(i)) }

Замечания по решению: — не правильное решение, i.odd? проверяет индексы от а, а в этот момент a.delete_at(i) уже изменил массив, уменьшив его на один элемент

Возможное решение: к чему сложности…

arr = Array.new(100){|x| x = rand(0..100000)}
even_ ={}; noeven_= {}
for i in 0 .. arr.length-1
    i.even? ? even_[i] = arr[i] : noeven_[i] = arr[i]             
end
print(even_,"n", noeven_, "n")

Дан целочисленный массив. Необходимо найти минимальный четный элемент.[править]

Возможное решение:

a = [1, 2, 3, 4, 5]
p a.select{ |i| i.even? }.min

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5]
p a.reject{ |i| i.odd? }.min

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5]
p a.select{ |i| i[0] == 0 }.min

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5]
p a.select{ |i| i%2 == 0 }.min

Замечания по решению:

Дан целочисленный массив. Найти среднее арифметическое модулей его элементов.[править]

Возможное решение:

a = [1, 2, 3, 4, 5]
p (a.inject(0){ |sum, i| sum + i.abs }.to_f) / a.size

Замечания по решению:

Возможное решение:

mac = [1, 2, 3, 4, 5]
d = mac.size
jopa = mac.map{ |jo| jo.abs }
j = jopa.inject(0){ |c,jo| c+jo }
j/d

Замечания по решению:

Дан целочисленный массив. Найти все элементы, которые меньше среднего арифметического элементов массива.[править]

Возможное решение:

a = [1, 2, 3, 4, 5]
b = a.inject(0){ |b,c| b + c }.to_f / a.size
a.select{ |i| i < b }

Замечания по решению:

Возможное решение:

a = [1, 2, 3, 4, 5, 6]
b = a.inject(:+).to_f / a.size
a.select{ |i| i < b }

BlindMan (обсуждение) 12:00, 29 сентября 2012 (UTC)

Дан целочисленный массив. Необходимо найти количество минимальных элементов.[править]

Возможное решение:

a = [1, 1, 1, 2, 3, 4]
p a.count{ |i| i == a.min }

Замечания по решению:

Возможное решение:

m = [1, 1, 1, 2, 3, 4]
a = m.min
b = m.select{ |i| i == a }
p b.size

Замечания по решению:

Возможное решение:

m = [1, 2, 3, 4, 5]
p m.select{ |x| x == m.min }.size

Замечания по решению:

Дано число А и натуральное число N. Найти результат следующего выражения 1 + А + А*2 + А*3 + … + А*N.[править]

Возможное решение:

A,N = 10,15
p (1..N).inject(1){ |s,i| s+A*i }

Замечания по решению:

Возможное решение:

A,N = 20,15
(0..N).map{ |x| x*A }.inject(1){ |x,y| x+y }

Замечания по решению:

Дано натуральное число n. Необходимо найти число n!!, где n!! = 1*3*5*…*n для нечетного n и n!! = 2*4*6*…*n для четного.[править]

Возможное решение:

n = 15
maccuB = (1..n).to_a
maccuB = maccuB.partition{ |i| i[0].zero? }[ n%2 ]
p( maccuB.inject(1){ |result,elem| result*elem } )

Замечания по решению:

Возможное решение:

n = 23
a = (1..n).to_a
p( a.partition{ |x| x%2 == 0 }.select{ |x| x.index( a[-1] ) }.flatten.inject(1){ |rez,x| rez*x } )

Замечания по решению:

Возможное решение:

n=7
product=1
n.step(1,-2){|v| product*=v}
p product

Замечания по решению: вот это красота! Только лучше .inject(:*) для произведения использовать

Возможное решение:

n = 11
p (1..n).inject(1){|pr,e| pr= (e%2 ==n%2)? pr*e : pr}

Замечания по решению:

Дан целочисленный интервал a..b. Необходимо найти произведение кубов всех нечетных чисел в этом интервале.[править]

Возможное решение:

ab = (2..6)
p ab.inject(1){ |pr, i| pr = i.odd? ? pr*(i**3) : pr }

Замечания по решению:

Возможное решение:

a,b = 4,19
p( (a..b).to_a.select{ |i| i[0]==1 }.map{ |elem| elem**3 }.inject(1){ |pe3yJIbTaT,nepemeHHa9| pe3yJIbTaT*nepemeHHa9 } )

Замечания по решению:

Дан массив чисел. Необходимо проверить, чередуются ли в нем целые и вещественные числа.[править]

Возможное решение:

m = [1, 2.5, 3, 3.5, 4, 4.5]
p s = (1...m.size-1).all?{ |i| (m[i-1]*m[i]).integer? == (m[i+1]*m[i]).integer? }

Замечания по решению:

неоднозначное решение, предлагаю ниже своё решение

Возможное решение:

array=[1.1,1,2.2,3,7.5]
int=array[0].integer? ? 0 : 1
p array.partition{|v| v.integer?}.flatten==(0..array.size-1).partition{|i| (i+int)[0].zero?}.flatten.map{|i| array[i]}

Замечания по решению:

Возможное решение:

arr = [1, 2.5, 3, 3.5, 5, 4.5]

tmp = arr.partition{|e| arr.index(e)%2==0}
p tmp.select{|e| e.all?{|el| el.to_s.include? '.'}}.size==1

Замечания по решению:

Возможное решение:

array=[1.1,1,2,3,7.5]
p array.map!{|i| i.integer? ? 0 : 1}.all?{|i| array[i]!=array[i+1]}

Замечания по решению:

Дан целочисленный массив и интервал a..b. Необходимо найти сумму элементов, значение которых попадает в этот интервал.[править]

Возможное решение:

m = [1, 2, 3, 4, 5, 6, 7, 8]
ab = (3..5)
p m.select{ |i| ab === i }.reduce(:+)

Замечания по решению:

Возможное решение:

m = [1, 3, 7, 8, 9]
a = 1
b = 8
p m.select{ |i| (a..b).include?(i) }.inject(0){ |s,i| s+i }

Замечания по решению:

Возможное решение:

arr = [1, 5, 3, 7, 4, 8]
a,b=3,7
p arr.inject(0){|s,e| s= (a..b).include?(e) ? s+e : s}

Замечания по решению:

Дан целочисленный массив. Необходимо вывести вначале его положительные элементы, а затем — отрицательные.[править]

Возможное решение:

a = [1, 2, -3, 3, 7, -4, 6]
p a.sort.reverse

Замечания по решению:

Возможное решение:

a = [5, -3, 6, 0, -6]
p a.partition{ |i| i >= 0 }.flatten

Замечания по решению:

Возможное решение:

a = [1, -1, 3, 0, 5, -7]
k = a.select{ |i| i >= 0 }
s = a.select{ |i| i < 0 }
p k + s

Замечания по решению:

Возможное решение:

array1 = [1, -2, 3, -4, 5, -6]
array2 = array1.find_all{ |elem| elem >= 0 }
array3 = array1.find_all{ |elem| elem < 0 }
p array2 + array3

Замечания по решению:

С++. Задачи с решениями. Одномерные массивы

массивы

к списку всех задач на массивы

к списку всех задач

1. Удалить в массиве все числа, которые повторяются более двух раз.

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

int main()

{

    int a[100];

    int n=10;

    int i, j, count=0;

    srand(time(NULL));

    for (i = 0; i < n; i++)

    {

        a[i]=rand()%20;

        cout<<setw(4)<<a[i];

    }

    cout<<endl;

    for (i = 0; i < n; i++)

    {

     count=1;

        for (j=i+1; j<n; j++)

        {

            if (a[j] == a[i])

                count++;

        }

        if (count > 2)

        {

         int one=a[i];

         for (j=i; j<n; j++)

         {

         if (a[j]==one)

         {

         // удаляем

         for (int k=j+1; k<n; k++)

         {

         a[k1]=a[k];

         }

         n;

         j;

         }

         }

         i;

        }

    }

    // www.itmathrepetitor.ru

    if (n==0)

        cout<<«empty array»<<endl;

    else

    for (int p = 0; p < n; p++)

    {

        cout<<setw(4)<<a[p];

    }

    cout<<endl;

    getch();

    return 0;

}

2. Введите одномерный целочисленный массив. Найдите наибольший нечетный элемент. Далее трижды осуществите циклический сдвиг влево элементов, стоящих справа от найденного максимума, и один раз сдвиг элементов вправо, стоящих слева от найденного максимума.

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

int main()

{

int* a;

int n;

// ввод n с проверкой

do

{

cout<<«input n: «;

cin>>n;

}

while (n<1);

// выделение памяти

a=new int [n];

// ввод с консоли значений массива

for (int i=0; i<n; i++)

{

cout<<«input a[«<<i<<«]: «;

cin>>a[i];

}

//вывод исходного массива на экран

cout<<«start: «<<endl;

for (int i=0; i<n; i++)

cout<<a[i]<<» «;

cout<<endl;

// поиск наибольшего нечетного

int imax=1;

for (int i=0; i<n; i++)

if (a[i]%2==1)

{

if (imax==1)

imax=i;

else

if (a[imax]<a[i])

imax=i;

}

if (imax==1) // если нечетных нет вообще

cout<<«no odd number»<<endl;

else

{   // вывод на консоль наибольшего нечетного

cout<<«max odd number: «<<a[imax]<<endl;

cout<<«index         : «<<imax<<endl;

if (imax!=n1) // если справа от него есть элементы

for (int i=0; i<3; i++) // сдвиг три раза

{

int t=a[imax+1];

for (int j=imax+1; j<n1; j++) // сдвиг

a[j]=a[j+1];

a[n1]=t;

}

if (imax!=0) // если слева от него есть элементы

{

int t=a[imax1];

for (int j=imax1; j>0; j) // сдвиг

a[j]=a[j1];

a[0]=t;

}

// вывод на консоль результат

cout<<«end: «<<endl;

for (int i=0; i<n; i++)

cout<<a[i]<<» «;

cout<<endl;

}

// удаление памяти

delete [] a;

getch();

return 0;

}

3. Найдите сумму отрицательных элементов массива.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

int sum=0;

for (int i=0; i<n; i++)

{

   if (a[i]<0)

   {

      sum+=a[i];

   }

}

if (!sum)

{

   cout<<«no numbers < 0»;

}

else

{

  cout<<«sum = «<<sum;

}

4. Найдите произведение элементов массива с нечетными номерами.

int p=1;

for (int i=1; i<n; i+=2)

{

   p*=a[i];

}

cout<<«answer: «<<p<<endl;

5. Найдите сумму элементов массива между двумя первыми нулями. Если двух нулей нет в массиве, то выведите ноль.

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

int i1=1, i2=1;

for (int i=0; i<n; i++)

{

  // www.itmathrepetitor.ru

  if (!a[i])

  {  

     if (i1==1)

         i1=i;

     else if (i2==1)

         i2=i;

     else

        break;

  }

}

if (i2==1)

{

   cout<<0;

}

else

{

   if (i1==i21)

     cout<<«no numbers between zeros»;

   else

   {

      int s=0;

      for (int i=i1+1; i<i2; i++)

           s+=a[i];

      cout<<«sum = «<<s;

   }

}

6. Найдите наибольший элемент массива.

int max=0;

for (int i=1; i<n; i++) {   if (a[i]>max)

   max=a[i];

}

cout<<«max: «<<max<<endl;

7. Найдите наименьший четный элемент массива. Если такого нет, то выведите первый элемент.

int imin=1;

for (int i=0; i<n; i++) {  

   if ((!(a[i]%2) && (imin==1 || a[imin]>a[i]))

        imin=i;

}

if (imin==1)

  cout<<a[0];

else

  cout<<a[imin]<<endl;

8. Преобразовать массив так, чтобы сначала шли нулевые элементы, а затем все остальные.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

int i1=0, i2=n1;

while (i1<i2)

{

    // www.itmathrepetitor.ru

    while (i1 < i2 && !a[i1])

         i1++;

    while (i2 > i1 && a[i2])

        i2;

    if (i1 < i2)

    {

        int tmp=a[i1];

        a[i1]=a[i2];

        a[i2]=tmp;

    }

    i1++;

    i2;

}

9. Найдите сумму номеров минимального и максимального элементов.

int imax=0, imin=0;

for (int i=1; i < n; i++) {    

  if (a[i]>a[imax])

         imax=i;

    if (a[i]<a[imin])

         imin=i;

}

cout<<«answer: «<<imin+imax<<endl;

10. Найдите минимальный по модулю элемент массива.

int min=abs(a[0]);

for (int i = 1; i < n; i++) {      

  if (min>abs(a[i]))

         min=a[i];

}

// www.itmathrepetitor.ru

cout<<«abs min: «<<min<<endl;

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как правильно составить историческую справку организации образец
  • Как найти квт радиаторов
  • Правильный восьмиугольник как найти сторону
  • Как найти сервис папки
  • Сколиоз 1 степени как исправить за месяц

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии