Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивчик
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
munhoyan
Помогите пожалуйста плиз,
Для целочисленной матрицы найти для каждой строки число элементов, кратных 5, и наибольший из полученных результатов.
Матрица: N(10,10), условия и ограничения: n(ij)/5*5=n(ij)
klem4
Что конкретно не получается ? Не умеешь работать с массивами ? тебе сюда smile.gif
kent
munhoyan, вот так можно...



uses Crt;
const M = 10;
N = 10;
type
TMatrix = array [1..M,1..N] of Integer;

var mx : TMatrix;
i,j,max : Integer;
kratn_5 : array [1..M] of Integer;
begin
Clrscr;
WriteLn('Input Matrix:');
Randomize;
for i := 1 to M do
for j := 1 to M do
mx[i,j] := Random(150);
for i := 1 to M do
kratn_5[i] := 0;
for i := 1 to M do
for j := 1 to N do
if (mx[i,j] <> 0) and ((mx[i,j] mod 5) = 0) then
inc(kratn_5[i]);
max := -MaxInt;
for i := 1 to M do
if (kratn_5[i] > max) then
max := kratn_5[i];
WriteLn;
WriteLn('Sources Matrix:');
for i := 1 to M do begin
for j := 1 to N do
Write(mx[i,j]:4);
WriteLn;
end;
WriteLn;
WriteLn('Result:');
for i := 1 to M do
WriteLn('string#',i,'->',kratn_5[i]);
WriteLn('Great Result:',max,';');
ReadKey;
end.



Если матрицу нужно вводить вручную, немного подправишь...
volvo
To: kent
3 цикла элементарно объединяются в один:
max := -MaxInt;   
for i := 1 to M do begin
kratn_5[i] := 0;

for j := 1 to N do
if (mx[i,j] <> 0) and ((mx[i,j] mod 5) = 0) then
inc(kratn_5[i]);

if (kratn_5[i] > max) then
max := kratn_5[i];
end;
kent
volvo, немного неоптимально, но алгоритм понятен... wink.gif
P.S. Спасибо что поправил...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.