Тема: Массивы
Показать сообщение отдельно
Старый 21.04.2013, 16:40   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от grisha2207 Посмотреть сообщение
Дан массив целых чисел длинной n ,элементы которого могут повторятся .Найти третий по величине элемент массива.

Через Паскаль
Например, так:
Код:
Const
 N=16;
Var
 A:Array[1..N] of Byte;
 M,j:Byte;

Function Find_Max:Byte;
var Max,i:Byte;
begin
 Max:=0;
 for i:=1 to N do
  if A[i]>Max then Max:=A[i];
 Find_Max:=Max;
end;

Procedure Zero_Max(Mx:Byte);
var i:Byte;
begin
 for i:=1 to N do
  if A[i]=Mx then A[i]:=0;
end;

Procedure Out_Max(Mx:Byte);
var i:Byte;
begin
 for i:=1 to N do
  if A[i]=Mx then writeln('A[',i:2,']= ',A[i]);
end;

Begin
 Randomize;
 for j:=1 to N do
  begin
   A[j]:=Random(N*2);
   write(A[j]:4);
  end;
 writeln;
 writeln;
 For j:=1 to 2 do
  begin
   M:=Find_Max;
   Zero_Max(M);
  end;
 M:=Find_Max;
 Writeln('Result:');
 Out_Max(M);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070