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

Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений - C (СИ)

Войти
Регистрация
Восстановить пароль
 
programminf
0 / 0 / 0
Регистрация: 03.01.2017
Сообщений: 7
09.01.2017, 20:36     Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений #1
1. Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений.

Добавлено через 7 часов 11 минут
можно на си++
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2017, 20:36     Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений
Посмотрите здесь:

C (СИ) Сгенерировать массив целых чисел и вывести на экран
В порядке возрастания вывести введенные 3 числа C (СИ)
C (СИ) Вывести все делители целого числа в порядке возрастания
Вывести ненулевые элементы на экран в обратном порядке C (СИ)
C (СИ) Дан массив А$(10). Вывести элементы массива в порядке возрастания
Упорядочить элементы одномерного массива расположенных на четных позициях в порядке возрастания методом пузырька C (СИ)
Прочитать восемь целых чисел в массив, а затем вывести их в обратном порядке C (СИ)
C (СИ) Найти сумму целых положительных чисел, кратных 3 и меньших 100, вывести числа на экран
C (СИ) Выведите элементы массива, полученного слиянием A и B, в порядке возрастания
C (СИ) Отрицательные элементы массива отсортировать в порядке возрастания
Цикл: Вывести все числа, расположенные между заданными числами, в порядке их возрастания C (СИ)
C (СИ) Найти индексы одинаковых элементов массива и вывести их в порядке возрастания

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LFC
549 / 353 / 248
Регистрация: 17.09.2015
Сообщений: 1,063
10.01.2017, 12:00     Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений #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
#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;
}
HighPredator
 Аватар для HighPredator
5385 / 1768 / 323
Регистрация: 10.12.2010
Сообщений: 5,233
Записей в блоге: 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;
}
programminf
0 / 0 / 0
Регистрация: 03.01.2017
Сообщений: 7
19.01.2017, 20:51  [ТС]     Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений #4
а как записать чтобы массив вводился с клавиатуры ?

Добавлено через 48 секунд
LFC,
а как записать чтобы массив вводился с клавиатуры ?
Yandex
Объявления
19.01.2017, 20:51     Вывести на экран различные элементы массива целых чисел в порядке возрастания их числа повторений
Ответ Создать тему
Опции темы

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