Вопрос задан 22.06.2023 в 03:38. Предмет Информатика. Спрашивает Александрова Александра.

Помогите исправить решения задач: 1.Заполните массив случайными числами в интервале [0,1000] и

найдите количество элементов, старшая цифра которых равна 8. В решение нужно записать 2-4 строчки более простым способом. from random import randint def getH(s): while s>10: s=s//10 return s n=int(input('Введите размер массива: ')) a=[0]*n b=0 for i in range(0, n-1): a[i]=randint(0, 1000) if getH(a[i])==8: b+=1 print(a) print('Элементов начинающихся с 8 =',b) 2. Заполните массив случайными числами в интервале [0,1000] и выведите номера трёх различных минимальных элементов. Разрешается сделать только один проход по массиву. Заменить первую строчку a=sorted(a) i=1 b=1 print('3 минимальных элемента') print(a[0]) while b<3 and b if a[i]!=a[i-1]: print(a[i]) b+=1 i+=1
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Туголукова Ира.

Ответ:

Python

from random import randint

n=int(input('Введите размер массива: '))

a=[0]*n

b=0

for i in range(0, n-1):

   a[i]=randint(0, 1000)

# это часть для замены функции getH  

   c=a[i]

   if a[i]>=100: c=a[i]//100

   elif a[i]>10: c=a[i]//10

# конец определения первой цифры

   if c==8:

       b+=1

print(a)

print('Элементов начинающихся с 8 =',b)

# задание 2

# это вместо sorted.

i=1

while i<n:

  if a[i]<a[i-1]:

      z=a[i-1]

      a[i-1]=a[i]

      a[i]=z

      if i>1:

          i-=1

  else:   i+=1

# конец сортировки

i=1

b=1

print('3 минимальных элемента')

print(a[0])

while b<3 and b<n:

  if a[i]!=a[i-1]:

      print(a[i])

      b+=1

  i+=1


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот исправленные версии ваших решений:

  1. Заполните массив случайными числами в интервале [0,1000] и найдите количество элементов, старшая цифра которых равна 8. В решении нужно записать 2-4 строки более простым способом.
python
from random import randint n = int(input('Введите размер массива: ')) a = [randint(0, 1000) for _ in range(n)] count_starting_with_8 = sum(1 for num in a if str(num)[0] == '8') print(a) print('Элементов начинающихся с 8 =', count_starting_with_8)
  1. Заполните массив случайными числами в интервале [0,1000] и выведите номера трёх различных минимальных элементов. Разрешается сделать только один проход по массиву.
python
from random import randint n = int(input('Введите размер массива: ')) a = [randint(0, 1000) for _ in range(n)] min_indices = [] min_values = [float('inf')] * 3 for i, num in enumerate(a): if num < max(min_values): min_index = min_values.index(max(min_values)) min_values[min_index] = num min_indices[min_index] = i print('3 минимальных элемента:') for i in min_indices: print(a[i])

В обоих случаях используется более простой и понятный способ для выполнения задач.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос