Здравствуйте, YarLam125!
Чуток подправил код
[code h=200]
/*
Дан целочисленный массив размера N и целое число L. Удалить из массива все элементы,
встречающиеся менее L раз, и вывести размер полученного массива и его содержимое.
*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int N;
srand(time(NULL));
printf("Введите кол-во эл-ов массива: \n");
scanf("%d",&N);
int *arr = (int*)malloc(N*sizeof(int));
int temp,i;
printf("Эл-ты массива\n");
for (i=0; i<N; i++)
{
arr[i] = rand()%5;
printf("%d ", arr[i]);
}
printf("\n");
int L;
printf("Введите знач-ие L: \n");
scanf("%d", &L);
int j, Li, k;
for (i=0;i<N;i++)
{
Li=0;
for (j=0; j<N; j++)
{
if (arr[j]==arr[i])
Li++; //считаем одинаковые
}
if (L>Li)
{ //удаляем все, равные i-му
temp=arr[i]; //запоминаем значение
for(j=i; j<N; j++) //по всем от текущего до последнего
{
if (arr[j] == temp) //если равен удаляемому
{
for(k=j; k<N-1; k++)//сдвигаем все на один влево
arr[k] = arr[k+1];
N--; //общее количество -= 1
}
}
i--; //i-й элемент тоже удален, на его месте новый,
} // поэтому продолжаем с i-го индекса
}
printf("N = %d\n", N);
for (i=0; i<N; i++)
printf("%d ", arr[i]);
printf("\n");
free(arr);
return 0;
}
[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен