Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2011, 18:32   #1
olegozavr
 
Регистрация: 18.01.2011
Сообщений: 4
По умолчанию найти номер столбца с мин. суммой положительный элементов.

День добрый товарищи. НЕ могу понять почему считает что-то не то. Подскажите пож.
(подпрограммы юзать обязательно)



Код:
program fir;
  const
   n=5;
   m=5;
  type
    matr=array[1..n,1..m] of integer;
  var
    a:matr;
   sm,ik,s1,s,i,j:integer;

  procedure sum(x:matr;ix:integer;var s:integer);
    var
      i,j:integer;
    begin
      j:=ix;
      for i:=1 to n do if x[i,j]>0 then s:=s+x[i,j];
    end;
  procedure inmatr(var x:matr;n,m:integer);
    var
      i,j:integer;
    begin
      for i:=1 to n do
        for j:=1 to m do readln(x[i,j]);
      end;
  procedure outmatr(x:matr; n,m:integer);
    var
      i,j:integer;
    begin
      Writeln('Матрица');
      for i:=1 to n do begin
        for j:=1 to m do write(x[i,j]:5,' ');
        writeln;
        end;
    end;
  begin
    inmatr(a,n,m);
    outmatr(a,n,m);
     s1:=0;
    for i:=1 to m do begin
                      sm:=0; 
                      sum(a,i,sm);
                      if sm>s1 then begin
                                     s1:=sm;
                                     ik:=i;
                                     end;
                     end;

  writeln('номер столбца с мин. суммой ',s1,' = ',ik);
   end.
Всё ребята, спасибо, разобрался сам. (в цикле сумму sm не обнулял, и считалась вся сумма.);

Последний раз редактировалось olegozavr; 18.01.2011 в 18:57.
olegozavr вне форума Ответить с цитированием
Старый 18.01.2011, 18:59   #2
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

Код:
 const n=5;
var a:array[1..6,1..5] of integer;
    h,min:integer;
procedure sum();
var i,j:integer;
begin
 for i:=1 to n do
 for j:=n downto 1 do
 if a[j,i]>0 then a[n+1,i]:=a[n+1,i]+a[j,i];
end;
procedure reade();
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
end;
procedure writ();
var i,j:integer;
begin
for i:=1 to n do begin
writeln;
for j:=1 to n do
write(a[i,j],' ');
end;
writeln('мин сумма-',min,' номер строки - ',h);
end;
procedure poisk();
var k:integer;
begin
min:=1000000000;
for k:=2 to n do
if a[n,k]<min then begin min:=a[n,k]; h:=k; end;
end;
begin
reade;
sum;
poisk;
writ;

end.
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив.номер столбца имеющего наибольшую сумму элементов. luvky13 Паскаль, Turbo Pascal, PascalABC.NET 2 10.01.2011 11:52
Как найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов INFINITIFX Общие вопросы C/C++ 2 11.11.2010 09:55
одномерные массивы(C++) - Найти максимальный положительный элемент и вычислить сумму элементов массива Scarletred Помощь студентам 2 03.04.2010 03:08
найти подпоследовательность из подряд идущих элементов с наибольшей суммой на С++ aj_tramp Помощь студентам 2 12.12.2008 08:57