• Составьте программу поиска чаще всего встречающегося элемента массива С(М,М)

Ответы 3

  • Да... эпический подвиг)))
  • {Attention! Это самое отвратное моё решение на Знаниях. Запаситесь валерьянкой перед прочтением кода}//Pascal ABC.NET 3.1 сборка 1219Type ty=record valu:integer; count:integer;end;Const n=3; Var ma:array[1..n,1..n] of integer; tyar:array of ty; se:set of integer; i,j,z,k,MaxCount:integer;begin randomize; se:=[]; k:=0; MaxCount:=integer.MinValue; writeln('Matrix:'); for i:=1 to n do  begin   for j:=1 to n do    begin     ma[i,j]:=random(-10,10);     write(ma[i,j]:4);     if not(ma[i,j] in se) then       begin       inc(k);       setlength(tyar,k+1);       tyar[k].valu:=ma[i,j];       tyar[k].count:=1;       se:=se+[ma[i,j]];      end     else       for z:=1 to k do {O(n^3) в худшем случае - нормальные люди ненавидят это}        if tyar[z].valu=ma[i,j] then         begin          inc(tyar[z].count);          break;         end;    end;   writeln;  end;  for i:=1 to k do  if MaxCount<tyar[i].count then MaxCount:=tyar[i].count;  writeln('Res:');  for i:=1 to k do  if tyar[i].count=MaxCount then writeln(tyar[i].valu);end.Пример работы программы:Matrix:  -7  -2  10   8   0  -2   6  10   1Res:-210
    • Автор:

      general88
    • 6 лет назад
    • 0
  • Можно воспользоваться преимуществами, которые дает Pascal 3.1 и программа будет достаточно короткой.// PascalABC.NET 3.1, сборка 1250 от 28.05.2016begin  var m:=ReadInteger('m=');  var c:=MatrixRandom(m,m,10,99);  var d:=new Dictionary<integer,integer>;  for var i:=0 to m-1 do begin    for var j:=0 to m-1 do Print(c[i,j]);    Println;    end;  foreach var e in c do d[e]:=d.Get(e)+1;  var q:=d.OrderByDescending(x->x.Value);  var p:=q.First.Value;  if p=1 then Writeln('Все значения в массиве уникальны')  else begin    var s:=q.TakeWhile(x->x.Value=p).Select(x->x.Key);      Write('Наиболее часто (',p,') ');    if s.Count=1 then begin      Print('встречается значение');      s.Print      end    else begin      Print('встречаются значения:');      s.Println      end    endend.Тестовые решенияm= 376 34 96 47 99 79 94 33 11 Все значения в массиве уникальныm= 543 19 46 70 51 73 46 50 18 25 19 10 32 83 81 32 46 81 23 84 27 91 84 79 28 Наиболее часто (3) встречается значение 46m= 1089 11 84 46 18 68 56 13 28 34 86 25 84 34 51 13 37 41 26 23 33 74 87 21 11 42 61 42 32 65 34 37 47 23 24 20 61 14 93 31 71 27 19 31 81 94 38 87 74 83 19 74 81 28 70 24 23 72 44 76 17 24 80 62 10 58 78 71 19 40 52 33 48 94 51 16 64 65 40 16 13 74 68 48 56 60 56 28 53 99 97 88 69 27 23 57 46 57 31 33 Наиболее часто (4) встречаются значения: 23 74
    • Автор:

      tate18
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years