#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[k—1]=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!=n—1) // если справа от него есть элементы for (int i=0; i<3; i++) // сдвиг три раза { int t=a[imax+1]; for (int j=imax+1; j<n—1; j++) // сдвиг a[j]=a[j+1]; a[n—1]=t; } if (imax!=0) // если слева от него есть элементы { int t=a[imax—1]; for (int j=imax—1; j>0; j—) // сдвиг a[j]=a[j—1]; 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==i2—1) 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=n—1; 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; |