Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Переделать из с++ в си http://www.cyberforum.ru/c-beginners/thread1973827.html
Добрый вечер^^ Помогите переделать из с++ в с кодик один. Если что, то задание звучит так Задан массив а1, а2, … , аn Перенести в другой массив те элементы, которые встречаются один раз, исключив...
C (СИ) Найти маршрут, при котором радость Петра будет наибольшей
Вопрос жизни и смерти.Не знаю как сделать программу,очень нужно! На отдыхе в Теплой Стране Вера познакомилась с симпатичным волейболистом- трактористом Петром. Турист Петр, кстати, собирается...
Сортировка линейным выбором C (СИ)
Есть стек #include <stdio.h> #include <stdlib.h> typedef struct _Item { float _key; char _str; } Item;
C (СИ) Найти суммы последовательностей Доброго дня. При введении относительно больших чисел в качестве границ, программа зависает. Также, хотелось бы узнать, каким образом совершить выход из программы, задав нажатие конкретной клавиши. ... http://www.cyberforum.ru/c-beginners/thread1973391.html
C (СИ) Сортировка списка по всем полям в любых направлениях. Использовать указатели на функции http://www.cyberforum.ru/c-beginners/thread1973261.html
В общем, я запутался. Вот задание. Необходимо разработать программу согласно варианту задания. При реализации использовать указатели на функции и (или) массивы указателей на функции....
Исправьте ошибки. Что будет напечатано? "C" C (СИ)
#define B Я полагал #define X=1 main() { int xp, age; char name; printf(Определите, пожалуйста, свое имя. \n); scanf(“%s”,&name); printf(Очень хорошо, %s, Сколько вам лет ?\n, &name);...
C (СИ) Создайте символьный фильтр, производящий реверс или обращение входной строки
3)Программа. Создайте символьный фильтр, производящий реверс или обращение входной строки.
C (СИ) Запомнить и вывести самую длинную строку 2)Программа.На вход символьного фильтра подаются строки. Фильтр запоминает самую длинную строку и выдает её после окончания работы цикла ввода. http://www.cyberforum.ru/c-beginners/thread1973213.html
C (СИ) Функция getline(s), вычисляющая длину входной строки s http://www.cyberforum.ru/c-beginners/thread1973212.html
Программа. Функция getline(s), вычисляющая длину входной строки s.
C (СИ) Работа с файлами и структурами Доброго времени суток. Начал делать работу по созданию БД на Си. Для начало надо сделать основные функции (добавление записи, удаление и просмотр) Написав код обнаружил, что номер счета и сумма... http://www.cyberforum.ru/c-beginners/thread1973197.html
Геомеханик
807 / 610 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
04.05.2017, 12:17 0

Перенести в другой массив те элементы, которые встречаются один раз, исключив их из первого

04.05.2017, 12:17. Просмотров 293. Ответов 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
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
#include <stdio.h>
#include <stdlib.h>
int  array_unique(int a[], int n);
int  array_once_value(int b[], int* cnt, int a[], int n);
 
static int compare(const void* a, const void* b){
    return *(int*)a - *(int*)b;
}
 
int main(void){
    int i, a[100], b[100], m, n = 20;
    for(i = 0; i < n; ++i)
        a[i] = rand() % 20;
 
    qsort(a, n, sizeof(a[0]), &compare);
    for(i = 0; i < n; ++i)
        printf("%d ", a[i]);
    putchar('\n');
 
    n = array_once_value(b, &m, a, n);
    puts("print array-b: ");
    for(i = 0; i < m; ++i)
        printf("%d ", b[i]);
    putchar('\n');
 
    n = array_unique(a, n);
    puts("\nprint array-a: ");
    for(i = 0; i < n; ++i)
        printf("%d ", a[i]);
    getchar();
    return 0;
}
 
//Перенести в другой массив те элементы, которые встречаются один раз, исключив их из первого
int array_once_value(int b[], int* cnt, int a[], int n){
    int j, i, m = 0, o = 0;
    for(j = i = 0; j < n; ++j){
        m = j + 1;
        while((m < n) && (a[m] == a[j]))
            ++m;
 
        if((m - j) > 1){
            while(j < m)
                a[i++] = a[j++];
            --j;
        } else
            b[o++] = a[j];
    }
    *cnt = o;
    return i;
}
 
//удаление повторов
int array_unique(int a[], int n){
    int j, i = (n > 0) ? 1 : 0;
    for(j = 1; j < n; ++j){
        if((a[j - 1] != a[j]))
            a[i++] = a[j];
    }
    return i;
}


Вернуться к обсуждению:
Перенести в другой массив те элементы, которые встречаются один раз, исключив их из первого
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2017, 12:17

Дан массив из 10 элементов.Перенести в один другой массив четные числа.Затем перенести в еще один другой масси
Дан массив из 10 элементов.Перенести в один другой массив четные числа.Затем перенести в еще один...

Вывести те элементы, которые встречаются в массиве только один раз
Привет всем. Изучаю c++, ломаю уже 1 день голову над данной задачей: Дан массив. Выведите те его...

Перенести в массив С те элементы массива А, которые не встречаются в массиве В
Помогите с заданием в C++. Заданы массивы а1, а2, …, а20 и в1,в2,…,в10. Перенести в массив С те...

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