Определить строки матрицы, в которых число 5 встречается 3 и более раз

Матрицу 10x20 заполнить случайными числами от 0 до 15. Вывести на экран саму матрицу и номера строк, в которых число 5 встречается три и более раз.

Для хранения номеров строк, в которых число 5 встречается более двух раз, предусмотрим одномерный массив размерностью, равной количеству строк матрицы.

При заполнении каждой строки матрицы следует проверять очередное число, не является ли оно пятеркой. Если так, то увеличивать счетчик. После того, как строка заполнена, проверить, не больше или не равен ли счетчик трем. Если это так, то следует записать в очередную ячейку одномерного массива номер текущей строки.

Вывод матрицы можно осуществлять в том же цикле, что и ее заполнение. Вывод же номеров строк следует выполнить в отдельном цикле по одномерному массиву до того индекса, на котором остановилось его заполнение.

const
    M = 20; N = 10;
var
    a: array[1..N,1..M] of integer;
    row: array[1..N] of byte;
    i,j,k,qty: byte;
 
begin
    randomize;
    k := 0;
    for i:=1 to N do begin
        qty := 0;
        for j:=1 to M do begin
            a[i,j] := random(15);
            write(a[i,j]:4);
            if a[i,j] = 5 then qty := qty + 1;
        end;
        if qty >= 3 then begin
            k := k + 1;
            row[k] := i;
        end;
        writeln;
    end;
 
    write('Строки, в которых 3 и больше пятерок: ');
    for i:=1 to k do
        write(row[i],' ');
    writeln;
end.

Пример(ы) выполнения программы на языке Pascal:

   5  13   0  14  12  11   8  11   8  11  12   7  12   8   6   8   1   2  12   1
   5  11   3   6  11   9   4  10   9   6   9   3   0   8   5   9  12  13   1  10
   3   7   7   7   7   0   9  10   7   7  11  11   2   3   3  12  10   0   3   1
  10  11   9   1   8   9   1   0  12   6   0   5   6  11   2  13  12   7   2  10
  11  13   4   2   2   3   4  10  10   9   6   3   8  13   1   8   4   7  10   7
   6   0  12   5   5  10   6   1  11   3  11   5   3   3   5   3   3  10  11  10
   6   1   7   1  10  14   5   7   5   6  12  10   4   0  11   0   3  13   6   8
   6   2   2   9  14  12   2   2   4  10   3   6  11   2   3  10  13  12   4   9
   9   8   7   0   0   6  14   4   5   7   5  11   5   3  13  13  14  10  13   3
   6   0   2   1   9   4  13   2   5  11   7   5   4   4   3   4  13   5   0   5
Строки, в которых 3 и больше пятерок: 6 9 10
#include <stdio.h>
#define M 20
#define N 10
main() {
    int a[N][M], row[N], i, j, k, qty;
    srand(time(NULL));
    k = 0;
    for (i=0; i<N; i++) {
        qty = 0;
        for (j=0; j<M; j++) {
            a[i][j] = rand()%15;
            printf("%4d", a[i][j]);
            if (a[i][j] == 5) qty += 1;
        }
        if (qty >= 3) {
            row[k] = i+1;
            k += 1;
        }
        printf("\n");
    }
 
    printf("Строки, в которых три и более чисел 5: ");
    for (i=0; i<k; i++) {
        printf("%d ", row[i]);
    }
    printf("\n");
}
from random import random
N = 10
M = 20
a = []
row = []
for i in range(N):
    z = []
    qty = 0
    for j in range(M):
        n = int(random() * 15)
        z.append(n)
        print("%3d" % n, end='')
        if n == 5: qty += 1
    print()
    if qty >= 3: row.append(i+1)
    a.append(z)
print("Строки, в которых три и более чисел 5:", row)
алг
нач
  цел N=10, M=20
  цел таб a[1:N,1:M], row[1:N]
  цел i, j, k, qty
  k := 0
  нц для i от 1 до N
    qty := 0
    нц для j от 1 до M
      a[i,j] := int(rand(0,15))
      вывод a[i,j], " "
      если a[i,j] = 5 то qty := qty + 1 все
    кц
    если qty >= 3 то
      k := k + 1
      row[k] := i
    все
    вывод нс
  кц
 
  вывод "Строки, в которых три и более чисел 5: "
  нц для i от 1 до k
    вывод row[i], " "
  кц
кон
M = 20
N = 10
dim a(N,M)
dim row(N)
k = 0
for i=0 to N-1
        qty = 0
        for j=0 to M-1
                a[i,j] = int(rand*15)
                print a[i,j] + " ";
                if a[i,j]=5 then qty=qty+1
        next j
        if qty >= 3 then
                row[k] = i+1
                k = k+1
        endif
        print
next i
print "Строки, в которых 5 встречается 3 и более раз: ";
if k<>0 then
        for i=0 to k-1
                print row[i] + "  ";
        next i
endif
14 14 13 4 3 3 14 14 5 0 14 3 9 3 7 7 2 1 9 12
2 5 10 0 13 10 1 6 4 9 0 4 8 2 12 1 2 2 11 13
4 8 7 3 8 10 14 11 6 11 0 4 4 14 10 11 7 7 3 12
7 6 6 14 2 2 8 4 14 13 3 11 14 10 14 0 14 14 9 4
10 14 14 2 8 10 10 7 10 12 10 2 4 0 2 10 12 2 13 11
5 4 13 11 0 4 7 4 10 9 10 10 14 5 1 5 9 8 7 2
14 3 14 2 13 7 2 2 0 0 11 9 0 14 7 1 8 12 11 2
12 4 12 2 0 14 9 2 10 3 3 10 8 4 8 0 2 6 11 11
13 8 4 2 12 3 9 13 6 8 10 5 13 12 7 6 5 12 10 9
5 9 11 2 11 2 4 5 6 12 13 4 2 13 2 6 6 7 9 5
Строки, в которых 5 встречается 3 и более раз: 6  10

Цикл, выводящий номера строк, "обрамлен" в конструкцию if, т.к. если строк нет, то k остается равно нулю и в происходит ошибка в цикле for из-за того, что начальное значение оказывается больше конечного.