Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 52, средняя оценка - 4.85
Electricitygirl
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 26
#1

Как посчитать количество элементов в массиве и распечатать его? - C++

20.01.2011, 18:44. Просмотров 8207. Ответов 10
Метки нет (Все метки)

Как посчитать кол-во элементов в массиве и распечатать его?
В символьных строках, вроде как strlen, а с цифрами как?
Вроде как надо использовать sizeof, но как он работает я не понимаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2011, 18:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как посчитать количество элементов в массиве и распечатать его? (C++):

Посчитать количество элементов в одномерном массиве - C++
Помогите решить задачу . Посчитать сколько элементов в одномерном массиве, состоящих из четырех или меньше символов. Вывести количество...

Посчитать количество различных элементов в массиве - C++
Дан линейный массив целых чисел ввести с клавиатуры не менее 10 элементов и посчитать сколько в нем различных чисел . помогите решить ...

Посчитать количество нулевых элементов в двумерном массиве - C++
Помогите пожалуйста с решением задачи: Нужно посчитать количество нулевых элементов в двумерном массиве.(и сделать тремя способами: 1....

Посчитать количество нулевых элементов в массиве, вывести их индексы - C++
делаю лабу, наполовину завершил, но наткнулся на эту задачу, хэлп.. Написать программу определения количества и номера индексов...

В заданном одномерном массиве посчитать количество элементов равных максимальному - C++
Дан одномерный массив А посчитать кол-во элементов равных максимальному

Посчитать количество отрицательных элементов в массиве, используя перегрузку функций - C++
Но в действиях CHAR возникает ошибка. Не могу разобраться. Прошу помочь. #include "stdafx.h" #include <iostream> #include <ctime> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
20.01.2011, 18:49 #2
Electricitygirl,
Если массив не динамический - sizeof(Arr)/sizeof(*Arr).
Или посчитать вручную
Electricitygirl
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 26
20.01.2011, 18:55  [ТС] #3
А вручную, как? А то я с sizeof не дружу
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
20.01.2011, 18:59 #4
Electricitygirl, Вообще предпочтительно использовать динамическую память или же массив с фиксированным размером... Если массив больше, а используется меньше, заполнять изначально все элементы массива нулями или каким-то числом, ибо если не заполнять - во всех элементах массива - мусор, пока их ничем не заполнишь... Как-то так... Лучше заполнять сначала каким-то числом, и дальше, подсчитать легко циклом
fasked
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
20.01.2011, 19:03 #5
Electricitygirl, может быть Вам надо посчитать количество элементов, отобранных по какому-либо критерию? Например, равных нулю или неравных нулю, четных или нечетных...
Иначе вопрос является несколько бессмысленным, при создании массива Вы заведомо должны знать сколько элементов содержит массив.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
20.01.2011, 19:03 #6
Electricitygirl, вопрос - а зачем их считать? В функции размер массива отдельным параметром передаётся, при динамическом размещении Вы сами указываете, сколько объектов в массиве должно быть, для статического Вам сказали уже:
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
#int main(void){
    int arr[] = { 1, 2, 3 }, i;
 
    for ( i = 0; i < sizeof(arr) / sizeof(*arr); ++i )
      printf("%d\n", arr[i]);
 
    return 0;
}
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
20.01.2011, 19:09 #7
easybudda, Просто я полагаю вопрос на тему такого.

C++
1
2
3
int Arr[20];
for(int i=0; i<10; ++i)
   Arr[i]=i+1;
Вот и как после такого посчитать? Никак по идее. Ну то что их 10 в данном примере очевидно, но в общем случае никак. Или хранить переменную с конкретным размером
Electricitygirl
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 26
20.01.2011, 20:03  [ТС] #8
А, если нечетные элементы?
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
20.01.2011, 20:07 #9
Electricitygirl,
C++
1
2
3
4
5
for(int i=0; i<n; ++i)
{
    if(Arr[i] % 2 == 0)
        count++;
}
Где n - размер массива, Arr - массив, count - счетчик нечетных элементов, сначала должен быть 0.

Или.

C++
1
int cnt=std::count_if(vec.begin(), vec.end(), std::bind2nd(std::modulus<int>(), 2));
Где count_if - алгоритм из STL. vec - вектор из STL. begin, end - итераторы на начало вектора.
bind2nd - адаптер из STL. modulus<int>() - структура из STL с перегруженным оператором ().
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
20.01.2011, 21:25 #10
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int count_even(int * arr, size_t size){
    int cnt = 0;
    while ( size-- && ( ! ( *arr++ & 1 ) || ++cnt ) )
        ;
    return cnt;
}
 
void dump(int * arr, size_t size){
    while ( size-- )
        printf("%d%c", *arr++, ( size ) ? ' ' : '\n');
}
 
int main(void){
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    
    printf("Array: ");
    dump(arr, sizeof(arr) / sizeof(*arr));
    printf("%d even elements.\n", count_even(arr, sizeof(arr) / sizeof(*arr)));
    
    return 0;
}
Antonnn
Сообщений: n/a
11.08.2014, 13:52 #11
Задаем для проверки элемент, выходящий за рамки массива. Например, массив из 11 элементов, я задал 12й
C++
1
2
3
4
5
6
    for (i=0;i<11;i++)
    {
        if(a[i]!=a[12])
        {
            cout<<a[i]<<"\n";}
    }
будут напечатаны все непустые элементы. Так же и с подсчетом.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2014, 13:52
Привет! Вот еще темы с ответами:

Необходимо посчитать количество отрицательных элементов в массиве,используя перегрузку функций - C++
Что-то у меня получилось сделать. Но все равно до конца не разобралась. Прошу помочь довести программу до ума. _______________ ...

Посчитать максимальное количество подряд идущих отрицательных элементов в целочисленном массиве - C++
3) Посчитайте максимальное количество подряд идущих отрицательных элементов в целочисленном массиве длины 30.

Как посчитать количество положительных и отрицательных чисел в массиве? - C++
Вывожу 10 случайных чисел (-10....10), как подсчитать кол-во положительных чисел и кол-во отрицательных? #include&lt;iostream&gt; ...

Как посчитать количество строк, меняющих свою длинну в динамическом массиве? - C++
Сам массив есть и работает, пробовал через счетчик, но нигде не работает, хотя может что неправильно делаю.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.08.2014, 13:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru