Линейный поиск: найти количество различных элементов, не упорядочивая массив - C (СИ)
Формулировка задачи:
В массиве М(к) много совпадающих элементов. Найти количе-
ство различных элементов в нём (не упорядочивая массива).
Решение задачи: «Линейный поиск: найти количество различных элементов, не упорядочивая массив»
textual
Листинг программы
#include<stdio.h> int main(){ int n, t, i, j, arr[30],len, halflen,flag=0,count=0; printf("Enter number of elements to insert in an array:"); scanf("%d",&len); printf("Enter elements to insert in an array:"); for(i=0;i<len;i++){ scanf("%d",&t); arr[i]=t; } printf("\n"); /*****************************/ for(i=0;i<len;i++){ count=1; for(j=i+1;j<=len-1;j++){ if(arr[i]==arr[j] && arr[i]!='\0'){ count++; arr[j]='\0'; } } if(arr[i]!='\0'){ printf("%d is %d times.\n",arr[i],count); } } /*****************************/ getch(); return 0; }
Объяснение кода листинга программы
В этом коде реализуется линейный поиск для подсчета количества уникальных элементов в массиве, введенных пользователем. Вот список ключевых шагов:
- Ввод количества элементов и самих элементов массива с помощью функции scanf().
- Создание переменных для хранения количества уникальных элементов и их количества, а также переменной для отслеживания найденного уникального элемента.
- Два вложенных цикла: внешний для обхода всех элементов массива, внутренний для проверки, является ли текущий элемент уникальным.
- Если внутренний цикл обнаруживает, что текущий элемент уникален, он увеличивает счетчик уникальных элементов и устанавливает флаг.
- Если внешний цикл обнаруживает, что флаг установлен, он выводит текущий элемент и количество его вхождений.
- Функция getch() используется для приостановки программы и ожидания ввода пользователя.
- Код завершается возвратом 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д