Дан двумерный массив размерностью n*m заполненный случайными числами.Определить,есть ли в данном массиве столбец,в котором имееться ровно три одинаковых элемента — Pascal(Паскаль)

program slavik;
uses crt;
var
a:array[1..100,1..100] of integer;
i,j,kol,n,m,k:integer;
begin
  clrscr;
  randomize;
  write('введите колличество строк     n ');readln(n);
  write('введите колличество столбцов  m ');readln(m);
  for i:=1 to n do
  begin
    for j:=1 to m do
    begin
      a[i,j]:=random(3)-2;
      write(a[i,j]:3);
    end;
    writeln;
  end;
  k:=1;
  kol:=0;
  for j:=1 to n do
  begin
    for i:=1 to m do
    begin
      if a[k,j]=a[i,j] then
      begin
        kol:=kol+1;
      end;
    end;
    textcolor(11);
    if kol=3 then writeln('в ',j,' столбце ровно три элемента ');
    textcolor(7);
    k:=k+1;
    kol:=0;
  end;
   readln;
end.

Следующий вариант

var
matr: array [1..100,1..100] of integer;
k,i,j,count,m,n:integer;
begin
write('Число строк ');
readln(n);
write('Число столбцов ');
readln(m);
randomize;
 
for i:=1 to n do
  begin
  for j:=1 to m do
    begin
    matr[i,j]:=random(3)+1;
    write(matr[i,j], ' ');
    end;
  writeln;
  end;
for j:=1 to m do
  for i:=1 to n-2 do
    begin
    count:=1;
        for k:=i+1 to n do
          if matr[i,j]=matr[k,j] then
            inc(count);
        if count=3 then 
          begin
          writeln('в ',j,' столбце есть три одинаковых элемента');
          break;
          end;
    end;
  
readln;  
end.

Leave a Comment

21 − 18 =