Форум для программистов - задавайте интересные вопросы - получайте квалифицированные ответы
Поиск столбца с макс. суммой в двумерном массиве
  • facepalmfacepalm June 2011
    В двумерном массиве нужно найти столбец с максимальной суммой элементов и в этом столбце найти минимальный элемент. Длина строк и столбцов задаётся через эдит. Наработки есть, но ищет не верно :(

    var
    Form1: TForm1;
    a:array [1..30, 1..30] of integer;
    b:array [1..30] of integer;
    i,j,sum,max,maxn,min,m,n:integer;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Randomize;
    n:=strtoint(Edit1.Text);
    m:=strtoint(edit2.text);
    for i:=0 to N-1 do
    for j:=0 to M-1 do
    a[i,j]:= Round(Sin(Random(100))*100);
    StringGrid1.RowCount:=n+1;
    StringGrid1.ColCount:=m+1;
    with StringGrid1 do
    begin
    i:=0;
    for j:=1 to RowCount do
    Cells[i,j]:=IntToStr(j);
    j:=0;
    for i:=1 to ColCount do
    Cells[i,j]:=IntToStr(i);
    end;
    with StringGrid1 do
    for i:=1 to n do
    for j:=1 to m do
    Cells [j,i]:=IntToStr(a[i-1,j-1]);
    end;

    procedure TForm1.Button3Click(Sender: TObject);
    begin
    for i:=1 to n+1 do
    begin
    sum:=0;
    for j:=1 to m+1 do
    sum:=sum+a[i,j];
    b[i]:=sum;
    end;
    max:=b[1];
    maxn:=1;
    for i:=2 to n+1 do
    if max< b[i] then
    begin
    max:=b[i];
    maxn:=i;
    end;
    edit3.text:=(inttostr(maxn)+' столбец');
    end;

    procedure TForm1.Button4Click(Sender: TObject);
    begin
    min:=a[maxn,1];
    for i:=1 to n+1 do
    if min>a[maxn,i] then
    min:=a[maxn,i];
    edit4.text:=('Значение мин элемента: '+inttostr(min));
    end;
  • sergeysergey June 2011
    Это, лабы делай сам, помогать не будем. Учись, студент
Webparadox - разработка мобильных приложений под iOS и Android.