Дан двумерный квадратный массив. Найти номера строк, все элементы которых равны нулю. Использовать подпрограммы для решения каждой частной задачи. Я так понимаю, что пользователь сам вводит элементы массива с клавиатуры, причем удобнее по строкам. Например, так:
Ты покажи свои результаты для затравки... В чем сложности-то?
Jaxx
4.07.2007 17:24
Проблема в том, как сделать ввод именно в том виде, в котором я привел его в примере. Остальное - сделаю сам
Lapp
4.07.2007 17:37
Цитата(Jaxx @ 4.07.2007 14:24)
Проблема в том, как сделать ввод именно в том виде, в котором я привел его в примере. Остальное - сделаю сам
Вот так примерно:
for i:=1 to n do begin Write('Введите ',i,'-ю строку массива: '); for j:=1 to n do Read(a[i,j]); ReadLn end;
Jaxx
4.07.2007 17:59
Получилось следующее:
Uses crt; const n=5; var arr:array[1..n,1..n] of integer; i,j:integer;
procedure fill; var i,j:integer; begin for i:=1 to n do begin write('vvedite ',i,'-yu stroku massiva: '); for j:=1 to n do read(arr[i,j]); readln end; end;
procedure find; var i,j:integer; begin for i:=1 to n do for j:=1 to n do begin if arr[i,j]=0 then writeln('0 v stroke: ',i); end; end;
begin clrscr; fill; find; readln; end.
Поправьте, плиз, цикл вывода на экран номеров строк, заполненных нулями... А то выводятся по несколько раз подряд... И, может, еще где ошиПки есть, покажите
Jaxx
4.07.2007 19:43
Поправил немного, ибо решение не соответствовало условию. Данная программа искала и выводила строки, где был хотя бы один 0. А по условию нужно вывести номера строк, где все элементы равны нулю. Вроде нормальный вариант, но перепроверьте:
Uses crt; const n=5; var arr:array[1..n,1..n] of integer; i,j:integer;
procedure fill; var i,j:integer; begin for i:=1 to n do begin write('vvedite ',i,'-yu stroku massiva: '); for j:=1 to n do read(arr[i,j]); readln end; end;
procedure find; var i,j, stroka,stroka2:integer; begin stroka2:=0; for i:=1 to n do begin stroka:=0; for j:=1 to n do begin if arr[i,j]=0 then begin stroka:=stroka+1; if stroka=n then begin stroka2:=1; writeln('0 v stroke: ',i); end; end; end; end; if stroka2=0 then writeln('v massive net takih strok'); end;
begin clrscr; fill; find; readln; end.
volvo
5.07.2007 13:28
Если б ты отформатировал код, как положено - сам увидел бы, что надо сначала пробежать по всей строке, а уж потом сравнивать значение переменной Stroka с N и предпринимать какие-то действия при равенстве...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.