Помогите пожалуйста написать программу на питон, которая будет находить в одномерном массиве минимальное чётное число и максимальное нечётное число.
Программа в основном написана, но не получается найти минимальное чётное число.
n=int(input("Введите количество элементов, которые будут в списке:"))
b=[]
for i in range(0,n):
a=int(input("Элемент:"))
b.append(a)
c=[]
d=[]
for i in b:
if(i%2==0):
c.append(i)
else:
d.append(i)
c.sort()
d.sort()
count1=0
count2=0
for k in c:
count1=count1-1
for j in d:
count2=count2+1
print("Минимальное четное число:",c[count1+1])
print("Максимальное нечетное число",d[count2-1])
Kromster
13.5k12 золотых знаков43 серебряных знака72 бронзовых знака
задан 14 мая 2021 в 5:29
4
n = int(input("Введите количество элементов, которые будут в списке:"))
b = []
for i in range(n):
a = int(input("Элемент:"))
b.append(a)
c = []
d = []
for i in b:
if i % 2 == 0:
c.append(i)
else:
d.append(i)
c.sort()
d.sort()
print("Минимальное четное число:",c[0])
print("Максимальное нечетное число",d[-1])
ответ дан 14 мая 2021 в 5:42
DanisDanis
19.1k5 золотых знаков20 серебряных знаков55 бронзовых знаков
3
0 / 0 / 0 Регистрация: 21.04.2021 Сообщений: 14 |
|
1 |
|
Определите минимальное чётное число, записанное в файле.04.05.2021, 21:00. Показов 10067. Ответов 6
Текстовый файл состоит не более чем из 10^6 символов. Определите минимальное чётное число, записанное в этом файле.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
04.05.2021, 21:00 |
6 |
__ALPHA__ 298 / 156 / 87 Регистрация: 16.04.2018 Сообщений: 239 |
||||
04.05.2021, 23:37 |
2 |
|||
0 |
4200 / 2487 / 525 Регистрация: 07.11.2019 Сообщений: 4,133 |
|
05.05.2021, 05:41 |
3 |
__ALPHA__, сортировка это нехорошее излишество в данном случае, нужно только минимальное, а не все.
1 |
КулХацкеръ 700 / 347 / 103 Регистрация: 09.02.2018 Сообщений: 787 |
||||
05.05.2021, 08:01 |
4 |
|||
0 |
iSmokeJC Am I evil? Yes, I am! 16118 / 9004 / 2605 Регистрация: 21.10.2017 Сообщений: 20,705 |
||||
05.05.2021, 08:07 |
5 |
|||
Дабу
1 |
0 / 0 / 0 Регистрация: 21.04.2021 Сообщений: 14 |
|
05.05.2021, 14:07 [ТС] |
6 |
в файле имеются не только цифры, поэтому выдает ошибку можно это както исправить?
0 |
Am I evil? Yes, I am! 16118 / 9004 / 2605 Регистрация: 21.10.2017 Сообщений: 20,705 |
|
05.05.2021, 14:10 |
7 |
Код этажом выше игнорирует все кроме чисел
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
05.05.2021, 14:10 |
Помогаю со студенческими работами здесь Найти и вывести минимальное трехзначное число, записанное в массиве Найти и вывести минимальное трехзначное число, записанное в данном массиве Дана последовательность из n целых чисел. Определить максимальное четное число и минимальное нечетное число в этой последовательности Дана последовательность из n… Найти наименьшее число, записанное в типизированном файле Определить минимальное четное число из введенных Найти минимальное четное число последовательности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 7 |
I’m trying to get the minimum odd number using python. I used lambda, loops and other methods to get minimum odd number but i was not able to get that using functions. here is my code
z= [1,8,-4,-9]
def min_odd(x):
for i in x:
if (i%2!=0):
return min(i)
y = min_odd(z)
print (y)
Can some please tell me what i was missing here.
asked Sep 15, 2018 at 20:14
4
The min()
function expects an iterable like a list which it will then yield the smallest element from.
E.g. min([1,0,3])
gives 0
.
So if you want to use it, you must create a list (or other iterable) of the odd numbers that you can then pass into it:
def min_odd(x):
odds = []
for i in x:
if i % 2 != 0:
odds.append(i)
return min(odds)
note that we could also use a list-comprehension:
def min_odd(x):
return min([i for i in x if i % 2 != 0])
which both work.
An alternative method would be to store the current minimum odd value in a variable and update this variable if we come across a smaller odd value:
def min_odd(x):
min_v = float('inf')
for i in x:
if i % 2 != 0 and i < min_v:
min_v = i
return min_v
answered Sep 15, 2018 at 20:19
Joe IddonJoe Iddon
19.9k7 gold badges33 silver badges52 bronze badges
3
Try:
min([val for val in z if val % 2 != 0])
answered Sep 15, 2018 at 20:20
msi_gervamsi_gerva
1,9743 gold badges20 silver badges27 bronze badges
It seems your code logics are wrong. First off, you seem to have an indentation error in the return statement. Second off, the min() function requires a collection of items (like an array for example) or a series of arguments to determine the minimum in that series. You can try multiple things.
-
Use another variable to store a temporary minimum. Replace it every time you find a smaller odd value ( for every i in x… if the value is odd and is smaller than the previous odd value, replace it) and have it started with the first odd number you can find.
-
Take all the odd numbers and add them to another array on which you will apply the min function.
Hope this proves useful!
answered Sep 15, 2018 at 20:26
You could pass a generator into the min()
function:
def min_odd(iterable):
return min(i for i in iterable if i % 2)
I didn’t write i % 2 != 0
because any odd number will return 1 which has a Boolean value of True.
I added a parameter to the function that takes the iterable so it can be used for any iterable passed in.
answered Sep 15, 2018 at 20:20
N ChauhanN Chauhan
3,3772 gold badges6 silver badges20 bronze badges
min
operates on an iterable. i
is not an iterable in your code; it’s the last element of the list.
You can achieve what you want with a filter, though:
min(filter(lambda e: e%2 != 0, x))
answered Sep 15, 2018 at 20:19
eriperip
16.2k11 gold badges66 silver badges121 bronze badges
Ответ:
Python
n=int(input(‘Введите количество чисел : ‘))
a=[0]*n
for i in range(n):
a[i]=int(input(‘a[‘+str(i)+’]=’))
z=999999
for i in a:
if z>i and i%2==0:
z=i
if z!=999999:
print(‘минимальное чётное число=’, z)
else:
print(‘Чётных чисел не найдено’)
# 2 вариант с использованием sorted
n=int(input(‘Введите количество чисел : ‘))
a=[0]*n
for i in range(n):
a[i]=int(input(‘a[‘+str(i)+’]=’))
a=sorted(a)
for i in a:
if i%2==0:
print(‘минимальное чётное число=’, i)
break
Не могу понять в чем ошибка. Во всех тестах ОК, кроме одного.
Ошибка во время выполнения программы.
Задача с информатикса:
Найти минимальное и максимальное из чётных положительных чисел, записанных в файле
input.txt
. Количество чисел неизвестно. Если в файле нет чётных положительных чисел, нужно вывести число 0. Результат записать в файлoutput.txt
Входные данные.
Целые числа записаны в файлеinput.txt
в столбик, по одному в строке. Ввод заканчивается тогда, когда заканчиваются данные в файле.Выходные данные.
Программа должна вывести в файлoutput.txt
минимальное и максимальное из чётных положительных чисел, разделив их пробелом. Если в файле нет чётных положительных чисел, нужно вывести число 0.Примеры
входные данные
1 2 3 4 -5 -8
выходные данные
2 4
Много различных вариаций решения придумал, но кину это:
Решение:
f=open('input.txt')
g=open('output.txt','w')
s=[int(i) for i in f.read().split()]
s=[i for i in s if (i>0 and i %2 == 0)]
if s != []:
print(str(min(s))+' '+str(max(s)), file = g)
else:
print('0', file = g)
f.close()
g.close()