Составить программу, определяющую , содержится лив двумерном массиве строка, состоящая из нулевых элементов. Результат должен быть один (да) (нет) Можете посмотреть, что тут не так и подкорректировать/написать новую? Заранее спс)
Составить программу, определяющую , содержится лив двумерном массиве строка, состоящая из нулевых элементов. Результат должен быть один (да) (нет) Можете посмотреть, что тут не так и подкорректировать/написать новую? Заранее спс)
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.2, сборка 1383 от 09.02.2017
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,0,1);
a.Println(4); Writeln(4*a.ColCount*'-');
Writeln(a.Rows.Any(x->x.All(x->x=0))?'Да':'Нет')
end.
Примеры
Количество строк в массиве: 10
Количество столбцов в массиве: 4
*** Исходный массив [10,4] ***
0 1 1 1
1 0 0 1
1 0 0 1
1 0 1 1
1 1 0 1
1 0 1 1
1 0 1 0
0 0 0 0
1 1 1 1
1 0 0 1
----------------
Да
Количество строк в массиве: 8
Количество столбцов в массиве: 5
*** Исходный массив [8,5] ***
1 1 0 0 1
1 1 0 1 0
1 0 0 0 0
0 0 0 1 1
1 0 1 1 1
1 0 0 1 1
1 1 0 1 1
0 1 1 1 0
--------------------
Нет
Гость
Можно вот так:
program z3;
const
n1=20;//строки
m1=20;//столбцы
var
mas:array [1..n1,1..m1] of integer;
n,m,i,j,k,fl:integer;
begin
randomize;
writeln('Введите кол-во строк и столбцов через пробел');
readln(n,m);
for i:=1 to n do begin
for j:=1 to m do begin
mas[i,j]:=-1 + random(2);
write(mas[i,j]:3);
end;
writeln;
end;
writeln;
fl:=0;
for i:=1 to n do
begin
k:=0;
for j:=1 to m do
if mas[i,j] = 0 then k:=k+1;
if k=m then fl:=1;
end;
if fl = 1 then writeln('yes') else writeln('no');
end.
Пример:
Введите кол-во строк и столбцов через пробел
6 4
-1 0 0 0
0 0 0 -1
0 0 0 0
0 -1 0 -1
-1 -1 0 -1
0 -1 -1 -1
yes
Не нашли ответ?
Похожие вопросы