Hiển thị kết quả từ 1 đến 2 / 2

Chủ đề: mảng 2 chiều

  1. #1
    Tham gia
    28-08-2009
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts

    mảng 2 chiều

    1: cho bảng số kích thước n x n, được nhập vào từ bàn phím, lần lượt tính u,v theo cách sau
    - cách tính u: gọi b1,b2,...bn là các phần tử lớn nhất của các cột bảng a, phần tử nhỏ nhất giữa những b chính là u
    - cách tính v: gọi c1,c2,..cn là các phần tử nhỏ nhất của các hàng của bảng a.phần tử lớn nhất giữa những c chính là v
    2.cho bảng số kích thước m x n, phần tử a[i] được gọi là phần tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng của nó, đồng thởi là phần tử lớn nhất của cột chứa nó
    vd
    1 3 5 9
    5 4 5 6
    7 2 6 2
    như vậy phần tử [2,2] chính là phần tử yên ngựa
    hãy nhập vào 1 khoảng m x n, hãy xem xem bảng có phần tử yên ngựa hay ko, nếu có hãy ghi ra phần tử đó và vị trí của nó
    Quote Quote

  2. #2
    Tham gia
    13-12-2008
    Location
    Vũng Tàu
    Bài viết
    393
    Like
    0
    Thanked 2 Times in 2 Posts
    Code:
    const fi='matran.inp';
          fo='matran.out';
    
    var   f:text;
          n,m,i,j:byte;
          a:array[1..100,1..100] of byte;
    
    function min(x,i,j:byte):boolean;
    var   k:byte;
    begin
          min:=true;
          for k:=1 to m do
                if a[i,k]<x then
                begin
                      min:=false;
                      exit;
                end;
    end;
    
    function max(x,i,j:byte):boolean;
    var   k:byte;
    begin
          max:=true;
          for k:=1 to n do
                if a[k,j]>x then
                begin
                      max:=false;
                      exit;
                end;
    end;
    
    begin
          assign(f,fi);
          reset(f);
          readln(f,n,m);
          for i:=1 to n do
          begin
                for j:=1 to m do
                      read(f,a[i,j]);
                readln(f);
          end;
          close(f);
          assign(f,fo);
          rewrite(f);
          for i:=1 to n do
                for j:=1 to m do
                      if min(a[i,j],i,j) and max(a[i,j],i,j) then
                      begin
                            writeln(f,a[i,j]);
                            close(f);
                            halt;
                      end;
          writeln(f,'k tim thay');
          close(f);
    end.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •