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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 52, средняя оценка - 4.85
Electricitygirl
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 26
20.01.2011, 18:44     Как посчитать количество элементов в массиве и распечатать его? #1
Как посчитать кол-во элементов в массиве и распечатать его?
В символьных строках, вроде как strlen, а с цифрами как?
Вроде как надо использовать sizeof, но как он работает я не понимаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2011, 18:44     Как посчитать количество элементов в массиве и распечатать его?
Посмотрите здесь:

C++ Посчитать количество нулевых элементов в двумерном массиве
Посчитать количество различных значений в массиве C++
C++ Посчитать количество различных элементов в массиве
Необходимо каждый элемент массива сравнить с его 8 соседями и если он больше, чем любой из элементов с которыми сравнивается, его распечатать. C++
C++ Посчитать количество элементов в одномерном массиве
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.01.2011, 18:59     Как посчитать количество элементов в массиве и распечатать его? #4
Electricitygirl, Вообще предпочтительно использовать динамическую память или же массив с фиксированным размером... Если массив больше, а используется меньше, заполнять изначально все элементы массива нулями или каким-то числом, ибо если не заполнять - во всех элементах массива - мусор, пока их ничем не заполнишь... Как-то так... Лучше заполнять сначала каким-то числом, и дальше, подсчитать легко циклом
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
20.01.2011, 19:03     Как посчитать количество элементов в массиве и распечатать его? #5
Electricitygirl, может быть Вам надо посчитать количество элементов, отобранных по какому-либо критерию? Например, равных нулю или неравных нулю, четных или нечетных...
Иначе вопрос является несколько бессмысленным, при создании массива Вы заведомо должны знать сколько элементов содержит массив.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2014, 13:52     Как посчитать количество элементов в массиве и распечатать его?
Еще ссылки по теме:

Как посчитать количество положительных и отрицательных чисел в массиве? C++
C++ Посчитать количество нулевых элементов в массиве, вывести их индексы
C++ Как посчитать количество строк, меняющих свою длинну в динамическом массиве?

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

Или воспользуйтесь поиском по форуму:
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";}
    }
будут напечатаны все непустые элементы. Так же и с подсчетом.
Yandex
Объявления
11.08.2014, 13:52     Как посчитать количество элементов в массиве и распечатать его?
Ответ Создать тему
Опции темы

Текущее время: 06:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru