• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Задача на массивы

grisha2207

Ученик
Регистрация
24 Фев 2013
Сообщения
5
Реакции
0
Баллы
0
Помогите с задачей я даже идею придумать не могу
Дан массив целых чисел длинной n в котором числа могут повторятся.Найти наиболее часто встречающееся число.Если таких чисел несколько то определить наименьшее из них
P.S Сортировать элементы массива мы якобы не умеем.

Через Паскаль
 
Код:
program Array14;
var
j,i:integer; // счетчик в цикле
N:integer;
kol,kol0:integer;
Otvet:integer;
a: array [1..100] of integer;
begin
// ввод размера массива
 writeln('Введите N (N<10)'); readln(N);
 for i:=1 to N do
 begin
 write('a[',i,']=');
 readln(A[i]); // ручной ввод значений массива
 end;
 // вывод результата
writeln('Результат');
kol0:=0;
Otvet:=a[1];
 for i:=1 to N-1 do
 begin
 kol:=0;
 for j:=i+1 to N do  if a[j]=a[i] then inc(kol);
if kol>kol0 then begin Otvet:=a[i]; kol0:=kol; end;
if kol=kol0 then begin Otvet:=a[i];end;
 end;
 inc(kol0);
 Writeln('Ответ число : ',Otvet,' встречается ',kol0,' раз');
end.
 
Помогите с задачей я даже идею придумать не могу
Дан массив целых чисел длинной 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. Вообще-то обычно я в таких случаях (если кто-то из коллег-программистов меня "опередил") свой пост ликвидирую. Но здесь, повторяю, случай особый.
 
Назад
Сверху