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

Узнай цену своей работы

Формулировка задачи:

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

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

textual
Листинг программы
#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;
}

Объяснение кода листинга программы

В этом коде используется язык программирования C. Сначала определяются две константы: N (18) и M (2). Затем объявляются две переменные типа int: i и j, которые будут использоваться в циклах, а также переменная k, которая будет использоваться для отслеживания количества элементов в массиве B. Также объявляется переменная flag, которая будет использоваться для отслеживания наличия текущего элемента в массиве B. И наконец, объявляются две переменные типа int: A и B, где A - это массив целых чисел, а B - это двумерный массив, который будет использоваться для подсчета количества повторений каждого элемента массива A. Первые два элемента массива B инициализируются значениями первого элемента массива A и единицей. Затем происходит два вложенных цикла. Внешний цикл идет от i = 1 до N - 1, а внутренний цикл идет от j = 0 до k - 1. Внутренний цикл проверяет, есть ли текущий элемент массива A в массиве B. Если элемент найден, то увеличивается значение элемента B[1][j], и флаг устанавливается в 1. Если элемент не найден, то он добавляется в массив B, и флаг устанавливается в 0. Если после прохода внутреннего цикла флаг остался равным 0, значит, элемент не был найден, и он добавляется в массив B с индексом k. Затем происходит еще один вложенный цикл, который перемещает элементы массива B, начиная с самых больших значений, на более маленькие позиции, чтобы отсортировать элементы по возрастанию их количества повторений. Наконец, происходит цикл, который выводит на экран значения массива B. Возвращаемое значение функции main() равно 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы