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

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

Войти
Регистрация
Восстановить пароль
 
audi357
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 27
#1

Ввести одномерный массив из n элементов. Определить число различных элементов в нем - C++

02.06.2014, 04:33. Просмотров 749. Ответов 7
Метки нет (Все метки)

Возникла небольшая проблема. Нужно сделать элементарное задание, но чтобы было несколько функций пользователя. Задание: Ввести одномерный массив из n элементов. Определить число различных элементов в нем.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "iostream"
#include "conio.h"
using namespace std;
 
void mass (int *i)
{   
    int j, A[*i];
    j=0;
    while (j<*i)
    {
        cin>>A[j];  j++;
        
    }   
    return;
}
 
 
int main ()
{   int n;
    cin>>n;
    int *p(&n);
    
    mass(p); 
    return 0;
}
Написал пока что только это. Так вот проблема в том, что надо задать массив в отдельной функции пользователя, а перебрать элементы в другой. А как его правильно описать в основной функции чтобы он был доступен во всех я не пойму. Подскажите, пожалуйста, кто может.

Добавлено через 38 минут
Немного переделал и появился другой вопрос.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "iostream"
#include "conio.h"
using namespace std;
 
void mass (int *a, int *q)
{   
    int i;
    i=0;
    while (i<*a)
    {
        cin>>*q;  i++;
        
    }   
    return;
}
void count (int *a, int *q)
{
    int max, s=0,k=0,j;
    max=0;
    
    for (j=0; j<*q; j++)
    {
        if (max!=*a)
        {s+=k+1;
        }
        cout<<s<<endl;
    }
    
    
}
 
int main ()
{   int n;
    cin>>n;
    int *p(&n);
    int A[*p];
    int *ms(&A[*p]);
    
    mass(p,ms); 
     count (ms,p);
    return 0;
}
Как мне в этой строчке: max=0; приравнять max к первому элементу массива, а вот в этой строчке if (max!=*a) сделать так, чтобы он сравнивал с первым элементом массива?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2014, 04:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввести одномерный массив из n элементов. Определить число различных элементов в нем (C++):

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

Ввести двумерный массив А (5*2).Определить в нем сумму модулей отрицательных элементов с использованием указателей. - C++
Ввести двумерный массив А (5*2).Определить в нем сумму модулей отр элементов с использованием указателей.

Ввести одномерный массив из элементов! - C++
7. Ввести одномерный массив из элементов. Каждый элемент, стоящий на нечетной позиции в массиве заменить остатком от деления этого...

Ввести одномерный массив из 13 элементов - C++
Ввести одномерный массив из 13 элементов. Определить произведение элементов чье значение без остатка делится на 2 и не делится на 3. (...

Задан одномерный массив, содержащий n элементов, определить сумму всех чётных элементов - C++
Задан одномерный массив, содержащий n элементов. определить, сколько раз в нём встречается максимальное значение. Задан одномерный...

Дано одномерный массив Х, состоящий из 15 элементов. Определить пивсуму наибольшего и наименьшего элементов массива - C++
Дано одномерный массив Х, состоящий из 15 элементов. Определить пивсуму наибольшего и наименьшего элементов массива

7
solar_wind
757 / 748 / 42
Регистрация: 06.07.2009
Сообщений: 2,970
Завершенные тесты: 1
02.06.2014, 05:20 #2
Что ты хотел сказать этими строками?
C++
1
2
3
 int *p(&n);
 int A[*p];
 int *ms(&A[*p]);
У тебя, поидее, это даже компилироваться не должно....
0
audi357
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 27
02.06.2014, 12:27  [ТС] #3
Спс.

Добавлено через 57 минут
Цитата Сообщение от solar_wind Посмотреть сообщение
Что ты хотел сказать этими строками?
C++
1
2
3
 int *p(&n);
 int A[*p];
 int *ms(&A[*p]);
У тебя, поидее, это даже компилироваться не должно....
Хотел я сделать так, чтобы размерность массива и он сам были доступны в каждой подпрограмме. Т.е описать его сначала, потом в одной функции ввести массив, а в другой посчитать кол-во разных элементов. Как это делать я не знаю. Поэтому получился такой говнокод.
0
solar_wind
757 / 748 / 42
Регистрация: 06.07.2009
Сообщений: 2,970
Завершенные тесты: 1
02.06.2014, 12:33 #4
n это размерность какого то массива, как я понимаю. mass и count это твои функции ввода массива и расчета
Что такое p? Что такое А? Что такое ms?
0
audi357
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 27
02.06.2014, 13:47  [ТС] #5
Это указатели. Я лепил все что мог. Потому что не догоняю, как сделать так, чтобы задать массив в одной функции, а посчитать разные элементы этого же массива в другой. Т.е как перенести массив и размерность из одной функции в другую, при этом ничего не потеряв. Подумал что с помощью указателей.
0
solar_wind
757 / 748 / 42
Регистрация: 06.07.2009
Сообщений: 2,970
Завершенные тесты: 1
02.06.2014, 13:55 #6
Это не указатели это, я даже не знаю что.....
Вам нужно изучать синтаксис С++
Вот это создание одномерного динамического массива:
C++
1
int* ms=new int[n];
Можешь его передавать по указателю ms куда угодно.
В конце только нужно будет сделать
C++
1
 delete [] ms;
1
audi357
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 27
02.06.2014, 14:00  [ТС] #7
А его размерность как передать?
0
solar_wind
757 / 748 / 42
Регистрация: 06.07.2009
Сообщений: 2,970
Завершенные тесты: 1
02.06.2014, 14:31 #8
Ну размерность то у тебя n. Так и передавай. У тебя же n меняться внутри функций не будет, так что ее можно и по значению передать.
1
02.06.2014, 14:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 14:31
Привет! Вот еще темы с ответами:

Ввести с клавиатуры одномерный массив, состоящий из 10 элементов - C++
Ввести с клавиатуры одномерный массив, состоящий из 10 элементов. Заменить в нем каждый нулевой элемент полусуммой последующего и...

Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов - C++
Дан одномерный массив, нужно подсчитать количество различных(не повторяющихся) элементов. Начала делать и вроде бы все легко, но не...

Определить число различных элементов в массиве - C++
Ввести одномерный массив из n элементов. Определить число различных элементов в нем. Заранее спасибо!!!!

Ввести одномерный массив E(10), найти сумму элементов массива, индекс которых равен их значению - C++
Ввести одномерный массив E(10), найти сумму элементов массива, индекс которых равен их значению. Помогите, пожалуйста, не знаю как найти...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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