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

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

Через Паскаль
Получите:

Код:
Const
 N=16;
Var
 A,B,Num:Array[1..N] of Byte;
 i,j,M,Max_num,Min,Imin,Q:Byte;
 Mn:Set of Byte;
Begin
 for i:=1 to N do B[i]:=0;
 Mn:=[];
 M:=0;
 Randomize;
 for i:=1 to N do
  begin
   A[i]:=Random(N div 2);
   write(A[i]:4);
  end;
 writeln;
 writeln;
 for i:=1 to N do
  begin
   if Not(A[i] in Mn) then
    begin
     Inc(M);
     Mn:=Mn+[A[i]];
     Num[M]:=0;
     B[M]:=A[i];
     for j:=i to N do
      if A[i]=A[j] then Inc(Num[M]);
    end;
  end;
 for i:=1 to M do
  writeln(B[i],' - ',Num[i],' times');
 writeln;
 Max_num:=0;
 for i:=1 to M do
  if Num[i]>Max_num then Max_num:=Num[i];
 Min:=N;
 Q:=0;
 for i:=1 to M do
  if Num[i]=Max_num then
   begin
    write(B[i]:4);
    Inc(Q);
   end;
 writeln('   - ',Max_num,' times');
 writeln;
 if Q>1 then
  begin
   for i:=1 to M do
    if (Num[i]=Max_num) and (B[i]<Min) then
     begin
      Min:=B[i];
      Imin:=i;
     end;
   writeln(B[Imin]:4,'   - minimal');
  end;
 Readln
End.
Interacia, оставляю свой вариант только потому, что Ваш несколько недоделан: не отработана ситуация, когда максимальное число повторений встречается не для одного, а для нескольких значений элементов массива. Между прочим, это сильно усложняет задачу. Но, увы, впрямую оговорено условием. Более того, предписано из таких значений найти наименьшее.
P.S. Вообще-то обычно я в таких случаях (если кто-то из коллег-программистов меня "опередил") свой пост ликвидирую. Но здесь, повторяю, случай особый.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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