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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести на экран линию из символов http://www.cyberforum.ru/cpp-beginners/thread374513.html
Нужно написать программу c помощью цикла While, вот условие: Написать программу, которая выводит на экран линию из символов. Число символов, какой использовать символ, и какая будет линия - вертикальная, или горизонтальная - указывает пользователь.
C++ Помогите написать прогу в С++ Люди пожалуйста помогите написать в С++ программы для задач ,буду очень благодарен Задача1 Lin18. Найти решение системы уравнений вида A1·x + B1·y = C1, A2·x + B2·y = C2, заданной своими коэффициентами A1, B1, C1, A2, B2, C2, если известно, что данная система имеет единственное решение. Задача2 Log18. Даны координаты (как целые от 1 до 8) двух различных полей шахматной доски. Если король за... http://www.cyberforum.ru/cpp-beginners/thread374507.html
C++ русские буквы
можно ли как-нибудь ввести в консоль русский текст, получить его, а затем работать с ним, а затем вывести его. посьню: есть код: char st = {0}; cout<<"Введите строку: "; cin>>st; cout<<"Введена строка: "<<st; ... // работаем со строкой
C++ Выравниваем строки по правому и левому краям
Задача: Создать программу, которая бы запрашивала у пользователя строки до тех пор, пока он не введет пустую строку, после чего программа должна вывести список введенных строк в два столбца, первый из которых выровнен по левому краю, а второй - по правому краю. То есть результат программы может выглядеть примерно следующим образом: Aarhus Aaron Ababa aback ...
C++ Что не так в программе? (цикл While) http://www.cyberforum.ru/cpp-beginners/thread374488.html
Условие: Написать программу, которая находит сумму всех целых нечетных чисел в диапазоне, указанном пользователем. #include <iostream> using namespace std; int main() { int summa=0,a,b,n=a; cout<<"OT:\n"; cin>>a; cout<<"DO:\n";
C++ Что такое композиция? Добрый день. Тут читаю книгу и в ней приводится длинющий и непонятный пример композиции. Попросил бы Вас привести простенький пример композиции, то есть классы как элементы других классов. Желательно с разъяснениями. подробнее

Показать сообщение отдельно
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
29.10.2011, 18:30     Выяснить, сколько чисел входит в последовательность по одному разу
Glam_Man, суть в том, что ваш массив b[N], статический и сравнивать значения с ним действительно нет смысла, потому что все его элементы - мусор. Надо создать вспомогательный динамический массив (можно и без этого конечно, ведь задача сводится к тому чтобы вывести количество неповторяющихся), добаить в него первый элемент массива a (т.е. a[0]), и дальше в случае необходимости расширять с помощью realloc. Но повторюсь что для выполнения задачи вспомогательный массив не нужен в принципе. Могу переписать покомпактней.

Добавлено через 1 час 25 минут
вот смотрите. я сначала писал на одном массиве, а потом решил добавить вспомогательный массив, просто так . На самом деле он не нужен вовсе.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int double_num(int *arr, const size_t N){
 
    int tmp = 0, flag, *arr_tmp;
 
    arr_tmp = (int*) malloc (sizeof(int));
    if ( !arr_tmp )
        exit ( -1 );
 
    for (int i = 0; i < N; ++i)
    {
        flag = 1;
 
        for (int k = 0; k < N; ++k)
            if( ( arr[ i ] == arr[ k ] ) & ( i != k ) )
            {
                flag = 0;
                break;
            }
 
        if ( flag )
        {
            ++tmp;
 
            arr_tmp = realloc(arr_tmp, tmp * sizeof(int));
            if ( !arr_tmp )
                exit ( -1 );
 
            arr_tmp[ tmp - 1 ] = arr[ i ];
        }
    }
 
    for (int i = 0; i < tmp; ++i)
        printf("%d ", arr_tmp[i]);
    printf("\n");
 
    free(arr_tmp);
    return tmp;
}
 
int main ()
{
    int *arr;
    const size_t N = 20;
    srand(time(0));
 
    arr = (int*)malloc(N * sizeof(int));
    if ( !arr )
        exit ( -1 );
 
    for (int i = 0; i < N; ++i)
    {
        arr[i] = rand() % N;
        printf("%d ", arr[i]);
    }
    printf("\n");
    printf("неповторяющихся элементов %i\n\n", double_num(arr, N));
 
    free(arr);
    return 0;
}
 
Текущее время: 04:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru