Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся менее трех раз, и вывести размер полученного массива и его содержимое
Категория: Delphi/Pascal
2013-01-15 20:42:53
code: #pascal
Program Array98; Var A: Array Of Integer; SIZE, i, j, k, p, x : Integer; Begin Randomize; Write('Размер массива -> '); ReadLn(SIZE); SetLength(A, SIZE); { Заполняем массив случайно } WriteLn('In array'); For i := 0 To SIZE - 1 Do Begin A[i] := Random(89) + 10; Write(A[i]:3); End; WriteLn; i := 0; While i < SIZE Do Begin k := 1; For j := i+1 To SIZE - 1 Do If a[j] = a[i] Then k := k + 1; If k > 3 Then Begin {2} j := i; x := A[i]; While j < SIZE Do If A[j] = x Then Begin {1} For p := j To SIZE - 2 Do A[p] := A[p + 1]; SIZE := SIZE - 1; End {1} Else j := j + 1; End {2} Else i := i + 1; End; If SIZE = 0 Then Write('Все элементы удалены:(') { Выводим, что все элементы удалены } Else Begin WriteLn('Оставшиеся элементы -> ',SIZE); WriteLn('Массив после сжатия'); For i := 0 To SIZE - 1 Do Write(a[i]:3); End; WriteLn; ReadLn; End.
автор: Kuznetsov Nikolai a.k.a. Lemac
Поделиться: