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

Вывести все числа, которые встречаются в этом массиве несколько раз - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Ватадот
 Аватар для Ватадот
3 / 3 / 0
Регистрация: 11.01.2011
Сообщений: 155
07.04.2011, 01:43     Вывести все числа, которые встречаются в этом массиве несколько раз #1
Дан массив, состоящий из 100 целых чисел.
а) Вывести все числа, которые встречаются в этом массиве
несколько раз.
б) Вывести все числа, которые встречаются в массиве только
по одному разу.
Незнаю как рещить...Помогите написать текст программы...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2011, 01:43     Вывести все числа, которые встречаются в этом массиве несколько раз
Посмотрите здесь:

C++ Вывести числа, которые встречаются в массиве несколько раз / один раз
Строки в С++ - вывести слова, которые встречаются один раз C++
Напечатать все слова , которые встречаются в исходной строке ровно один раз C++
C++ Дан массив. Выберите из него все элементы, которые встречаются в массиве наибольшее число раз
Вывести только те слова сообщения, которые встречаются в тексте один раз C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
07.04.2011, 02:50     Вывести все числа, которые встречаются в этом массиве несколько раз #2
Выводит уникальные элементы и неуникальные - с количеством их появления в массиве.
100 выставите сами.

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
#include <iostream>
#include <ctime>
#define N 50
using namespace std;
 
int main()
{   int arr[N], masq[N], nonun[N], i, j, k;
    srand(time(NULL));
 
    cout<<"Array:\n";
    for(i=0; i<N; i++)
    {   arr[i] = rand()%20+1;
        cout<<arr[i]<<" ";
        masq[i]=0; //подсчет повторений элемента в массиве (без первого)
        nonun[i]=0; //флаг для вывода неуникальных элементов
    }
    
    for(i=0, k=0, nonun[0]=0; i<N-1; i++)
        for(j=i+1; j<N; j++)
            if(arr[i]==arr[j] )
            {   if(!masq[i]) nonun[i]=1;
                masq[i]++; masq[j]++;
            }
 
    cout<<"\n\nUnique elements:\n";
    for(i=0; i<N; i++)
        if(!masq[i]) cout<<arr[i]<<" ";
 
    cout<<"\n\nNon-unique elements:\n";
    for(i=0; i<N; i++)
        if(nonun[i]) cout<<arr[i]<<"\t"<<masq[i]+1<<" times\n";
    
    cin.get();
    return 0;
}
Миниатюры
Вывести все числа, которые встречаются в этом массиве несколько раз  
IrineK
Заблокирован
07.04.2011, 03:01     Вывести все числа, которые встречаются в этом массиве несколько раз #3
В строке 18 исправить:
C++
1
for(i=0; i<N-1; i++)
остался отголосок другой мысли.)

И в строке 7 убрать k - оно не нужно.
Ватадот
 Аватар для Ватадот
3 / 3 / 0
Регистрация: 11.01.2011
Сообщений: 155
07.04.2011, 03:11  [ТС]     Вывести все числа, которые встречаются в этом массиве несколько раз #4
#include <ctime> мы ещё непрошли этот компилятор, пока пользуемся <stdio.h> <iostream.h> <math.h>
На какой лудще тогда заменить его?
МихаилМ
26 / 26 / 1
Регистрация: 11.11.2009
Сообщений: 86
07.04.2011, 03:15     Вывести все числа, которые встречаются в этом массиве несколько раз #5
А это не компилятор
IrineK
Заблокирован
07.04.2011, 03:22     Вывести все числа, которые встречаются в этом массиве несколько раз #6
На какой лудще тогда заменить его?
На <time.h>
Ватадот
 Аватар для Ватадот
3 / 3 / 0
Регистрация: 11.01.2011
Сообщений: 155
07.04.2011, 03:24  [ТС]     Вывести все числа, которые встречаются в этом массиве несколько раз #7
Цитата Сообщение от МихаилМ Посмотреть сообщение
А это не компилятор
Точно это же директива препроцессора...Перепутал случайно
IrineK
Заблокирован
07.04.2011, 03:26     Вывести все числа, которые встречаются в этом массиве несколько раз #8
На ошибках учатся.
А на перепутках? Как ощущения?
Ватадот
 Аватар для Ватадот
3 / 3 / 0
Регистрация: 11.01.2011
Сообщений: 155
07.04.2011, 03:34  [ТС]     Вывести все числа, которые встречаются в этом массиве несколько раз #9
Цитата Сообщение от IrineK Посмотреть сообщение
На ошибках учатся.
А на перепутках? Как ощущения?
А на перепутках меняются.Ощущение будто я заново родился и начинаю изучать все по зановому
Ватадот
 Аватар для Ватадот
3 / 3 / 0
Регистрация: 11.01.2011
Сообщений: 155
07.04.2011, 05:11  [ТС]     Вывести все числа, которые встречаются в этом массиве несколько раз #10
Ещё 2 задачи по этой же теме.Помогите плз составить текст программы,это последние остались...
Миниатюры
Вывести все числа, которые встречаются в этом массиве несколько раз  
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
07.04.2011, 07:19     Вывести все числа, которые встречаются в этом массиве несколько раз #11
Хм, надеюсь вектор это не намёк на STL? Сделал с массивами:
1.
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
#include <iostream>
///////////////////////////////////////////////
int main()
{
    const int arraySize = 10;
    double x[arraySize];
    int i, counter = 0;
 
    // вводим массив
    for ( i = 0; i < arraySize; ++i )
    {
        std::cout << "Enter " << i << "-st element: "; 
        std::cin >> x[i];
    }
 
    // ищем элементы в интервале
    for ( i = 0; i < arraySize; ++i )
    {
        if ( x[i] >= 0 && x[i] <= 1 )
            ++counter;
    }
 
    // печатаем результат
    std::cout << "Number of elements in [0,1]: " << counter;
 
    return 0;
}
2. Возможно получилось не айс Возможно лучше будет сначала объединить массивы в один, а потом полученный просто отсортировать.
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
#include <iostream>
///////////////////////////////////////////////
int main()
{
    const int arraySize = 10;
 
    int x[arraySize] = { 1, 5, 6, 8, 15, 16, 17, 58, 59, 80 };
    int y[arraySize] = { 1, 6, 7, 8, 8, 9, 33, 44, 66, 67 };
    int z[arraySize + arraySize];
 
    int i = 0, j = 0, k = 0;
 
    // записываем в 3 массив меньший элемент
    while ( i < arraySize && j < arraySize )
    {
        z[k] = ( x[i] < y[j] ? x[i++] : y[j++] );
            ++k;
    }
 
    // проверяем, остались ли элементы в 1 массиве
    while ( i < arraySize )
    {
             z[k] = x[i++];
             ++k;
    }
 
    // проверяем, остались ли элементы в 2 массиве
        while ( j < arraySize )
    {
             z[k] = x[j++];
             ++k;
    }
 
    // печатаем результат
    for ( i = 0; i < arraySize + arraySize; ++i )
    {
        std::cout << z[i] << ' ';
    }
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2011, 10:17     Вывести все числа, которые встречаются в этом массиве несколько раз
Еще ссылки по теме:

C++ Сненерировать случайным образом массив. Вывести числа, которые встречаются в массиве только по одному разу
C++ Вывести все числа, которые максимально часто встречаются в массиве и количество их повторений
Найти все символы, которые встречаются в строке более двух раз C++

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

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
07.04.2011, 10:17     Вывести все числа, которые встречаются в этом массиве несколько раз #12
Слияние векторов:

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
#include <iostream>
#define N 10
#define M 10
using namespace std;
 
int main()
{
    int A[]={1,3,16,22,31,128,129,141,220,251};
    int B[]={2,2,18,24,37,44,52,61,184,316};
    int C[N+M],i=0,j=0,k=0;
    while(k<N+M)
    {   if((A[i]<B[j] ||  j>=M) && i<N) 
        {   C[k]=A[i];  i++;}
        else 
        {   C[k]=B[j];  j++;}
        k++;
    }
 
    for(k=0;k<N+M;k++)
        cout<<C[k]<<"  ";
 
    cin.get();
    return 0;
}
Yandex
Объявления
07.04.2011, 10:17     Вывести все числа, которые встречаются в этом массиве несколько раз
Ответ Создать тему
Опции темы

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