Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивчик
Форум «Всё о Паскале» > 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. Спасибо что поправил...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.