0 / 0 / 0 Регистрация: 21.05.2014 Сообщений: 12 |
|
1 |
|
Найти количество ненулевых элементов массива05.07.2014, 15:50. Показов 6817. Ответов 5
Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел, после чего выводит количество ненулевых элементов (массивы)
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
05.07.2014, 15:50 |
5 |
Donnerwetter 40 / 40 / 17 Регистрация: 04.02.2014 Сообщений: 144 |
||||
05.07.2014, 16:56 |
2 |
|||
0 |
TyLinka 34 / 34 / 21 Регистрация: 02.02.2012 Сообщений: 181 |
||||
05.07.2014, 17:02 |
3 |
|||
0 |
Kerry_Jr 3105 / 2590 / 1219 Регистрация: 14.05.2014 Сообщений: 7,236 Записей в блоге: 1 |
||||
05.07.2014, 17:03 |
4 |
|||
Donnerwetter, Чуть укорочу ваш код
0 |
40 / 40 / 17 Регистрация: 04.02.2014 Сообщений: 144 |
|
05.07.2014, 17:16 |
5 |
Kerry_Jr, все верно, просто разбросал на два цикла, чтобы человеку был понятен механизм
0 |
sourcerer Модератор 5148 / 2327 / 339 Регистрация: 20.02.2013 Сообщений: 5,718 Записей в блоге: 20 |
||||
06.07.2014, 03:05 |
6 |
|||
Можно не использовать переменную n, хватит и объявленной внутри цикла for переменной i:
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
06.07.2014, 03:05 |
Помогаю со студенческими работами здесь Найти произведение ненулевых элементов и количество нулевых элементов
Дан текстовый файл. В этом файле записана…
Найти сумму положительных элементов массива и произведение ненулевых элементов, стоящих на нечётных местах
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 6 |
I am doing a project for my computer science one course and I am having trouble trying to get the exact size of an array that contains char values. First off the program prompts the user to enter the char values, by using the line cin.getline(array,100);
Afterwards, it takes the array and then passes it a getSize function that is suppose to return the actual size of the array. The only problem is that it is not inconsistent. Sometimes it returns the right value, but other times it doesn’t.
getSize function :
int getSize(char arr[]){
int i = 0;
for(i; '' != arr[i];i++){
}
return i;
}
Example:
arr[100] contains 5 characters and the rest are null, but the function returns 7 when the program runs. I am not sure if this is an issue, but the program modifies the array before sending it to the size function. It removes the duplicates.
asked Oct 31, 2013 at 4:53
8
Since you’re dealing with arrays, use the strlen function
strlen(array);
Note that there’s also a getline overload for strings that’s more C++ like (object oriented etc)
std::string line;
std::getline(std::cin, line);
size_t len = line.length();
answered Oct 31, 2013 at 5:25
nishantjrnishantjr
1,7781 gold badge15 silver badges39 bronze badges
template<size_t t_size>
size_t GetRealSize(const char (&str)[t_size])
{
return std::count_if(&str[0], &str[t_size], [](char c) { return !!c; });
}
This might be what you want.
answered Oct 31, 2013 at 5:01
xmllmxxmllmx
39.3k25 gold badges156 silver badges320 bronze badges
3
This can’t be done with pointers alone. Pointers contain no information about the size of the array — they are only a memory address. Because arrays decay to pointers when passed to a function, you lose the size of the array.
One way is to use Templates
template <typename T, size_t N>
size_t array(const T (&buffer)[N])
{
cout << "size: " << N << endl;
return N;
}
You can then call the function like this (just like any other function):
int main()
{
char a[10];
array(a);
}
Output:
size: 10
answered Oct 31, 2013 at 5:02
LingaLinga
10.3k10 gold badges52 silver badges104 bronze badges
1
you can easily use sizeof()
operator to get size,…
if you have char a[10];
use
int size=sizeof(a);
answered Oct 31, 2013 at 5:28
RaonRaon
1,2463 gold badges12 silver badges25 bronze badges
5
В этом посте мы рассмотрим, как узнать число элементов в списке Python, удовлетворяющих определенным условиям или критериям.
Если вам просто нужно найти количество конкретных элементов с списке, используйте метод .count()
>>> list_numbers = [1, 2, 2, 5, 5, 7, 4, 2, 1]
>>> print(list_numbers.count(2))
3
Существует несколько способов такого подсчета, и мы изучим каждый из них с помощью примеров. Итак, давайте начнем.
1. Использование цикла for для подсчета в списке Python
В этом фрагменте кода мы используем цикл for для подсчета элементов списка Python, удовлетворяющих условиям или критериям. Мы перебираем каждый элемент списка и проверяем условие, если оно истинно, то мы увеличиваем счетчик на 1. Это простой процесс сопоставления и подсчета для получения интересующего нас количества.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20]
count = 0
for item in list_numbers:
if item%5 == 0:
count += 1
print("количество элементов списка, удовлетворяющих заданному условию:", count)
количество элементов списка, удовлетворяющих заданному условию: 6
2. Применение len() со списковыми включениями для подсчета в списке Python
В представленном ниже фрагменте кода, мы используем списковые включения (list comprehension), чтобы создать новый список, элементы которого соответствует заданному условию, после чего мы получаем длину собранного списка. Это намного легче понять на примере, поэтому давайте перейдем к нему.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20]
element_count = len([item for item in list_numbers if item%5 == 0])
print(
"количество элементов списка, удовлетворяющих заданному условию:",
element_count
)
количество элементов списка, удовлетворяющих заданному условию: 6
Подсчет ненулевых элементов
В этом примере мы находим общее количество ненулевых элементов. Чтобы узнать число нулевых членов списка, мы можем просто изменить условие на if item == 0
.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 0, 0, 0]
element_count = len([item for item in list_numbers if item != 0])
print(
"количество элементов списка, удовлетворяющих заданному условию:",
element_count
)
количество элементов списка, удовлетворяющих заданному условию: 7
3. sum() и выражение-генератор для подсчета в списке Python
В этом примере кода мы используем sum()
с генераторным выражением. Каждый элемент списка проходит проверку условием и для тех элементов, которые ему удовлетворяют, возвращается значение True
. Метод sum()
в свою очередь подсчитывает общее число истинных значений.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20]
count = 0
count = sum(True for i in list_numbers if i % 5 == 0)
print(
"количество элементов списка, удовлетворяющих заданному условию:",
count
)
количество элементов списка, удовлетворяющих заданному условию: 6
4. sum() и map() для подсчета элементов списка Python с условиями или критериями
Функция map(fun, iterable)
принимает два аргумента: итерируемый объект (это может быть строка, кортеж, список или словарь) и функцию, которая применяется к каждому его элементу, — и возвращает map-объект (итератор). Для применения одной функции внутри другой идеально подходит лямбда-функция. Таким образом, map()
примет первый аргумент в виде лямбда-функции.
Здесь sum()
используется с функцией map()
, чтобы получить количество всех элементов списка, которые делятся на 5.
Давайте разберемся на примере, в котором переданная лямбда-функция предназначена для фильтрации членов списка, не кратных 5.
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20]
count = 0
count = sum(map(lambda item: item % 5 == 0, list_numbers))
print(
"количество элементов списка, удовлетворяющих заданному условию:",
count
)
количество элементов списка, удовлетворяющих заданному условию: 6
5. reduce() с лямбда-функцией для подсчета элементов списка Python с условием или критериями
Lambda — это анонимная (без имени) функция, которая может принимать много параметров, но тело функции должно содержать только одно выражение. Лямбда-функции чаще всего применяют для передачи в качестве аргументов в другие функции или для написания более лаконичного кода. В этом примере мы собираемся использовать функции sum()
, map()
и reduce()
для подсчета элементов в списке, которые делятся на 5.
Приведенный ниже код наглядно демонстрирует это.
from functools import reduce
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20]
result_count = reduce(
lambda count, item: count + (item % 5 == 0),
list_numbers,
0
)
print(
"количество элементов списка, удовлетворяющих заданному условию:",
result_count
)
количество элементов списка, удовлетворяющих заданному условию: 6
Надеюсь, что вы узнали о различных подходах к подсчету элементов в списке Python с помощью условия или критериев для фильтрации данных.
Удачного обучения!
Формулировка задачи:
Разработать алгоритм программы, которая вводит последовательность
из N чисел, считает количество ненулевых элементов и выводит номера этих элементов .
Код к задаче: «Найти количество ненулевых элементов массива и вывести их номера»
textual
Листинг программы
uses crt; const n=10; var a:array [1..n] of integer; i,x:integer; begin For i:=1 to n do begin Write('a[',i,']='); readln(a[i]); if a[i]<>0 then inc(x); end; Writeln; Writeln('Массив: '); For i:=1 to n do write(a[i]:3); Writeln; Writeln('Ненулевых элементов - ',x); For i:=1 to n do if a[i]<>0 then writeln('a[',i,']=',a[i]); end.
script1adsense2code
script1adsense3code
NumPy: Array Object Exercise-63 с решением
Напишите программу NumPy, чтобы получить количество ненулевых элементов в массиве.
Иллюстрированная презентация:
Пример решения : —
Код Python:
import numpy as np
x = np.array([[0, 10, 20], [20, 30, 40]])
print("Original array:")
print(x)
print("Number of non zero elements in the above array:")
print(np.count_nonzero(x))
Пример вывода:
Исходный массив: [[0 10 20] [20 30 40]] Количество ненулевых элементов в вышеуказанном массиве: 5
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу NumPy, чтобы разделить массив формы 4×4 на два массива вдоль второй оси.
Далее: Напишите программу NumPy для создания матрицы 5×5 со значениями строк в диапазоне от 0 до 4.