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

Задача по перемещению элементов в массивах. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ поворот массива на 90° http://www.cyberforum.ru/cpp-beginners/thread407777.html
всем привет. помогите разобраться с одной простенькой задачкой. есть массив. сделал зеркальный поворот массива, но теперь нужно повернуть его на 90° #include <iostream> #include <cstdlib> const int n = 4; const int m = 4;
C++ "расшфровка" md5 Всем привет! У меня есть такая проблемка, мне надо "достать" из куков нужние данные, насколько я знаю они шифруются в md5, который нельзя расшифровать, но есть программы которие могут подобрать нужные данние (где-то в интернете читал). Может кто знает как они называются, или просто знает другой вариант как достать данные. Всем заранее спасибо:) P.S Уважаемие модераторы прошу вас переместить... http://www.cyberforum.ru/cpp-beginners/thread407774.html
разбиение массива и сортировка C++
Приветсвую всех! Помогите пожалуйста написать программу разбиения массива на 3 подмассива, отсортировать каждый и потом эти отсортированные подмассивы отсортировать между собой в новой отсортированный массив и записать в файл
Перегрузка оператора == C++
нужно сравнить 1) объект класса abc с объектом класса abc1 2) объект класса abc с другим объектом класса abc 3) объект класса abc1 с объектом класса abc не используя виртуальности 1) и 2) я написала, а над третьим голову ломаю=( может кто знает, как можно такое сделать? (пишу в Visual Studio)
C++ Напечатать таблицу значений функции f(x) и суммы S(x) через do while http://www.cyberforum.ru/cpp-beginners/thread407764.html
через do while!!!!!! Напечатать таблицу значений функции f(x) и суммы S(x) в виде таблицы. N X F(x) S(x) <<<<<<========представте это таблицей) включая 1 1 Х изменяется в диапазоне от a до b с шагом h. Вычисление суммы вести до тех пор, пока очередное слагаемое не станет меньше e, причем это последнее слагаемое тоже учитывать. a = - 1 b = 1 ...
C++ Реализовать массив обьектов для хранения и действия для обработки элементов массива. Реализовать массив обьектов для хранения и действия для обработки элементов массива. Результаты сессии.Подсчет среднего балла по группе и определение максимального. подробнее

Показать сообщение отдельно
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
15.12.2011, 04:46     Задача по перемещению элементов в массивах.
Мой вариант:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
// заполнение массива
void fill_array( int[ ], size_t );
// вывод массива на экран
void print_array( int[ ], size_t );
// считаем сколько различных элементов в массиве
size_t calc_count_diff( int[ ], size_t );
// копируем элементы с одного массива в другой, пропуская дублирующиеся
void copy_elems( int[ ], int[ ], size_t );
 
int main( void ) {
    srand( time( NULL ) );
 
    const size_t dimm_src = 10;
    size_t dimm_res;
    int arr_source[ dimm_src ];
    int arr_result[ dimm_src ];
 
    fill_array( arr_source, dimm_src );
    puts("Исходный массив:");
    print_array( arr_source, dimm_src );
 
    copy_elems( arr_source, arr_result, dimm_src );
    dimm_res = calc_count_diff( arr_source, dimm_src );
    puts("Результирующий массив:");
    print_array( arr_result, dimm_res );
 
    return EXIT_SUCCESS;
}
 
void fill_array( int array[ ], size_t dimm ) {
    size_t i;
    for ( i = 0; i < dimm; ++i )
        array[ i ] = rand() % 11; // [ 0..10 ]
}
 
void print_array( int array[ ], size_t dimm ) {
    size_t i;
    for ( i = 0; i < dimm; ++i )
        printf( "%d ", array[ i ] );
 
    puts( "" );
}
 
size_t calc_count_diff( int array[ ], size_t dimm ) {
    size_t i, j, count = 0, check;
    for ( i = 0; i < dimm; ++i ) {
        check = 1;
        for ( j = i + 1; j < dimm; ++j )
            if ( array[ i ] == array[ j ] ) {
                check = 0;
                break;
            }
 
        if ( check )
            ++count;
    }
    return count;
}
 
void copy_elems( int array_source[ ], int array_result[ ], size_t dimm_source ) {
    size_t i, j, dimm_current = 1;
    int check;
 
    array_result[ 0 ] = array_source[ 0 ];
 
    for ( i = 1; i < dimm_source; ++i ) {
        check = 1;
        for ( j = 0; j < dimm_current; ++j )
            if ( array_source[ i ] == array_result[ j ] )
                check = 0;
 
        if ( check ) {
            array_result[ dimm_current ] = array_source[ i ];
            ++dimm_current;
        }
    }
}
Добавлено через 16 минут
2 Nastya24 - насколько я вижу, ТС привел код на языке СИ, а Вы ему предлагаете тип bool, которого нету в СИ.
Плюс к этому, если взять исходные данные, которые привел ТС
2 8 5 1 10 5 9 9 3 5
то Ваш код, навскидку, выведет не так как указал ТС
2 8 5 1 10 9 3
а вот что:
2 8 1 10 9 3 5

Т.е. в Вашем варианте если число в массиве встречается несколько раз, то берется его последний экземпляр.
 
Текущее время: 04:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru