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

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

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

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

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

Как посчитать кол-во элементов в массиве и распечатать его?
В символьных строках, вроде как strlen, а с цифрами как?
Вроде как надо использовать sizeof, но как он работает я не понимаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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> ...

10
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.01.2011, 18:49 #2
Electricitygirl,
Если массив не динамический - sizeof(Arr)/sizeof(*Arr).
Или посчитать вручную
1
Electricitygirl
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 26
20.01.2011, 18:55  [ТС] #3
А вручную, как? А то я с sizeof не дружу
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.01.2011, 18:59 #4
Electricitygirl, Вообще предпочтительно использовать динамическую память или же массив с фиксированным размером... Если массив больше, а используется меньше, заполнять изначально все элементы массива нулями или каким-то числом, ибо если не заполнять - во всех элементах массива - мусор, пока их ничем не заполнишь... Как-то так... Лучше заполнять сначала каким-то числом, и дальше, подсчитать легко циклом
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
20.01.2011, 19:03 #5
Electricitygirl, может быть Вам надо посчитать количество элементов, отобранных по какому-либо критерию? Например, равных нулю или неравных нулю, четных или нечетных...
Иначе вопрос является несколько бессмысленным, при создании массива Вы заведомо должны знать сколько элементов содержит массив.
0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,776
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;
}
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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 в данном примере очевидно, но в общем случае никак. Или хранить переменную с конкретным размером
1
Electricitygirl
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 26
20.01.2011, 20:03  [ТС] #8
А, если нечетные элементы?
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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 с перегруженным оператором ().
0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,776
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;
}
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++
Сам массив есть и работает, пробовал через счетчик, но нигде не работает, хотя может что неправильно делаю.


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

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

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