Как ввести массив с клавиатуры?
Как вводить элементы массива с клавиатуры? Задание: Дан массив целых чисел. Найти сумму и произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
l = [1, 4, 0, 3, 2, 7, 3, 1, 0, 34] t, c, k = 1, 0, 0 for i in l: if i == 0: if k == 1: break k = 1 continue if k == 1: t *= i c += i print(t) print(c)
Отслеживать
задан 13 мая 2019 в 18:57
17 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Ввод чисел через пробел:
my_list = [int(el) for el in input().split()]
Первый и второй ноль можно найти через index (проверка на вхождение обоих нулей — count(0)):
first = my_list.index(0) second = my_list.index(0, first + 1)
s = sum(q[first+1:second])
from functools import reduce mul = reduce(lambda x, y: x*y, q[first+1:second])
Заполнение массива
Обычно задачи про одномерные массивы начинаются со слов «заполните массив…» или «дан одномерный массив…» – всё это предполагает то, что массив был ранее создан и заполнен.
Присвоить значение элементу массива с номером `i` можно следующим образом:
//Си A[i]=x;
Но если этих элементов десять или десять тысяч? Тогда на помощь приходит оператор цикла For:
For i:=1 to 10000 do A[i]:=i*2;
//В Си номер элемента массива начинается с `0` For(i=0; iЭтот цикл не только заставляет ЭВМ выполнить большое количество действий, но и изменить при этом массу информации – содержимое 10000 ячеек. В каждом элементе массива число в два раза большее, чем его индекс.
Конечно, вместо выражения i*2 можно использовать любые математические формулы. Тогда каждый раз массив будет заполняться по функциональной зависимости, где индекс – это аргумент функции (i), а сам элемент – значение функции (A[i]).
Заполним массив значениями функции `y=x^2` для целых чисел на промежутке [1; 20].For x:=1 to 20 to y[x]:=sqr(x);//Си For(x=0; xЗдесь видно, что в программе y[x]:=sqr(x) – это тоже самое, что и математическое выражение `y(x)=x^2` . В Си необходимо использовать функцию `"pow"(x,y)` для возведения в степень ( `x^y` ).
А задание к этой программке будет звучать примерно так: "Заполнить массив y квадратами чисел от 1 до 20".
Заполнение массива с клавиатуры
Но если задании сказано, что массив следует заполнить с клавиатуры?
В основе заполнения массивов, как мы выяснили, лежит простое присваивание.
Ну а там, где присваивание, есть и ввод с клавиатуры.Вспомним как это делается для обычных переменных:
ReadLn (x);//Си scanf("%d",x);Теперь программа ожидает, пока мы наберём на клаве число и нажмём Enter. Всё! Наше число хранится в переменной x. Прикидываем, что элемент массива – это та же переменная, только с индексом:
ReadLn (A[i]);//Си scanf("%d",A[i]);В зависимости от индекса i введённое пользователем число запишется в массиве A по номеру i.
Вспомним, как мы присваивали значения элементов в цикле:For i:=1 to 20 do ReadLn (A[i]);//Си For(x=0; x
Программа запрашиват числа одно за другим, пока мы не введём 20 чисел. И все они по окончании цикла будут находиться в массиве A по тем номерам и в том порядке, как мы их вводили.Как ввести массив с клавиатуры в java
Для ввода массива с клавиатуры в Java можно использовать класс Scanner из стандартной библиотеки Java . Например, чтобы ввести массив целых чисел с клавиатуры, можно использовать следующий код:
import java.util.Scanner; public class Main public static void main(String[] args) Scanner scanner = new Scanner(System.in); System.out.print("Введите длину массива: "); int length = scanner.nextInt(); int[] array = new int[length]; System.out.println("Введите элементы массива:"); for (int i = 0; i length; i++) array[i] = scanner.nextInt(); > System.out.println("Массив: " + Arrays.toString(array)); > >
- В этом примере мы создали объект класса Scanner , который позволяет считывать данные из стандартного потока ввода (клавиатуры).
- Затем мы запросили у пользователя длину массива и создали массив нужного размера.
- После этого мы в цикле заполняем массив элементами, вводимыми с клавиатуры, с помощью метода nextInt() объекта Scanner.
- Наконец, мы выводим полученный массив на экран с помощью метода toString() класса Arrays
Для ввода массива других типов данных нужно использовать соответствующие методы класса Scanner , например, nextDouble() для ввода массива вещественных чисел.
Как заполнить массив значениями с клавиатуры?
Есть несколько вариантов заполнения массива с клавиатуры. Рассмотрим самый красивый с точки зрения пользовательского интерфейса.
Заполнение одномерного массива
for i := 1 to N do begin write('Введите значение a[', i, '] = '); readln(a[i]); end;
Заполнение двумерного массива
for i := 1 to N do for j := 1 to M do begin write('Введите значение a[', i, ',', j, '] = '); readln(a[i,j]); end;