Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 03.01.2017
Сообщений: 8
1

Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений

09.01.2017, 20:36. Показов 3341. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений.

Добавлено через 7 часов 11 минут
можно на си++
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2017, 20:36
Ответы с готовыми решениями:

Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей
1 Получить все числа, которые входят в массив по одному разу 2 Вывести на экран элементы...

Ввести три произвольных целых числа. Вывести их на экран в порядке возрастания
Ребят, помогите пожалуйста) Ввести три произвольных целых числа. Вывести их на экран в порядке...

Вывести в исходном порядке все различные элементы данного набора целых чисел
Дано целое число N и набор из N целых чисел, упорядоченный по возрастанию. Данный набор может...

Вывести на экран различные элементы массива а в порядке обратном появлению их в массиве b
Помогите, пожалуйста, с задачей по c++ Заданы два одномерных упорядоченных массива а и b. Вывести...

3
737 / 542 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
10.01.2017, 12:00 2
Лучший ответ Сообщение было отмечено programminf как решение

Решение

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
#include <stdio.h>
#include <stdlib.h>
#define N 18
#define M 2
int main()
{
    int i, j = 0, k = 1, flag, tmp, A[N] = {23,35,12,23,23,76,12,89,12,12,45,76,12,76,35,12,23,90}, B[M][N];
    B[0][0] = A[0];
    B[1][0] = 1;
    for(i = 1; i < N; i++){
        for(j = 0, flag = 0; j < k; j++){
            if(A[i] == B[0][j]){
                B[1][j]++;
                flag = 1;
            }
        }
         if(!flag){
            B[0][k] = A[i];
            B[1][k++] = 1;
         }
    }
    for(i = 1; i < k; i++)
        for(j = i; j > 0 && B[1][j - 1] > B[1][j]; j--)
            for(int m = 0; m < M; m++){
                tmp = B[m][j - 1];
                B[m][j - 1] = B[m][j];
                B[m][j] = tmp;
            }
    for(i = 0; i < k; i++)
        printf("%d %d\n", B[0][i], B[1][i]);
    return 0;
}
1
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
10.01.2017, 14:01 3
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
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
 
typedef struct
{
    int value;
    size_t count;
} StatisticData;
 
int compare(const void* a, const void* b)
{
    int result = 0;
    
    StatisticData* itemA = (StatisticData*)a;
    StatisticData* itemB = (StatisticData*)b;
    
    if (itemA->count == itemB->count) result = itemA->value - itemB->value;
    else
    {
        if (itemA->count > itemB->count) result = 1;
        else if (itemA->count < itemB->count) result = -1;
    }
    
    return result;
}
 
int main(void)
{
    int a[] = {1, 1, 1, 2, 3, 2, 5, 6, 6, 8, 8, 9, 9, 9, 9, 0};
    size_t N = sizeof(a) / sizeof(*a);
    
    StatisticData* data = calloc(N, sizeof(*data));
    size_t M = 0;
    
    for (size_t i = 0; i < N; i++)
    {
        bool found = false;
        
        size_t j = 0;
        
        while ((j < M) && !found)
        {
            if (data[j].value == a[i]) found = true;
            else j++;
        }
        
        if (found) data[j].count++;
        else
        {
            data[M].value = a[i];
            data[M].count = 1;
            M++;
        }
    }
    
    qsort(data, M, sizeof(*data), compare);
    
    for (size_t i = 0; i < M; i++)
        printf("Item %04zu : value = %d, count = %zu\n", i, data[i].value, data[i].count);        
    
    free(data);
    
    return 0;
}
0
0 / 0 / 0
Регистрация: 03.01.2017
Сообщений: 8
19.01.2017, 20:51  [ТС] 4
а как записать чтобы массив вводился с клавиатуры ?

Добавлено через 48 секунд
LFC,
а как записать чтобы массив вводился с клавиатуры ?
0
19.01.2017, 20:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2017, 20:51
Помогаю со студенческими работами здесь

Массив: вывести на экран сначало положительные числа в порядке возрастания, а потом отрицательные в порядке возрастания.
Надо &quot;Создать динамический массив,заполнить случайными числами,затем вывести на экран сначало...

Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания
Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания. ...

Вывести в порядке возрастания те элементы массива, которые больше заданного числа А
Дан одномерный массив, состоящий из n действительных чисел. Написать программу, которая выводит в...

Получить в порядке возрастания все различные элементы одномерного массива
Имеется одномерный массив, содержащий n элементов. Получить в порядке возрастания все различные...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru