Matrix37. Дана целочисленная матрица размера $$M \times N$$, элементы которой могут принимать значения от $$0$$ до $$100$$. Различные столбцы матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих столбцах. Найти количество столбцов, похожих на последний столбец данной матрицы.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
program Matrix37; var a:array [1..10,1..10] of integer; Num, M, N, i, j:Integer; Column1, ColumnN : set of byte; begin Write('N: '); Readln(N); Write('M: '); Readln(M); for i:=1 to M do begin writeln(i,': '); for j:=1 to N do begin Write(j,' : '); Read(a[i,j]); end; end; Column1:=[]; for i:=1 to M do Column1:=Column1+[a[i,N]]; Num:=0; for j:=1 to N-1 do begin ColumnN:=[]; for i:=1 to M do ColumnN:=ColumnN+[a[i,j]]; if Column1=ColumnN then Num:=Num+1; end; Writeln(Num); end. |
Другие задачи из раздела Matrix можно посмотреть здесь.
Здравствуйте! При попытке запустить код он открывает, дает ввести числа все, но в конце, когда необходимо вывести кол-во столбцов похожих происходит просто закрытие приложения. В чем дело?
Так давайте перед «end.» между 37 и 38 строкой введём сточку «Readln;Readln;Readln;»
Это позволит не закрывать окно, пока вы 3 раза не нажмёте энтер.
Ну и соответственно ещё бы данные которые вы вводитет, что бы я смог глянуть. 🙂
Два Readln достаточно для любого случая. Первый считает все не считанные последним
Read-ом символы (в том числе ’13’ и ’10’) до конца строки, второй будет ожидать ввода новой. Третий зачем?
Реализация на C#.