Giúp em với ạ em cần gấp. Cho một dãy gồm N số nguyên mỗi số có giá trị trong đoạn . Hãy tìm số lần xuất hiện của số âm lớn nhất có trong dãy đã cho. Dữ liệu vào cho trong file SOAM.INP dòng đầu tiên chứa số nguyên dương N (1<=N<=104). N dòng tiếp theo, dòng i chứa số ai. Kết quả: ghi ra file SOAM.OUT trên 1 dòng duy nhất là số lần xuất hiện của số âm lớn nhất có trong dãy số đã cho, trường hợp không có lời giải hãy ghi ra số -1. SOAM.INP SOAM.OUT 5 -4 3 2 -5 7 1 5 -1 5 -6 -1 5 2

2 câu trả lời

program bai_giai;
var f,g:text;
    A:array[1..10000] of integer;
    n,i,max,d:integer;
begin
    Assign(f,'SOAM.INP');  reset(f);
    Assign(g,'SOAM.OUT');  rewrite(g);
    readln(f,n);
    for i:=1 to n do read(f,A[i]);
    max:=0; d:=-1;
    for i:=1 to n do
        if (A[i]<0) and (max=0) then
            begin
                max:=A[i]; d:=1;
            end
        else if (A[i]<0) and (A[i]>max) then
            begin
                max:=A[i]; d:=1;
            end
        else if (A[i]<0) and (A[i]=max) then d:=d+1;
    write(g,d);
    close(f); close(g);
end.

const fi='SOAM.INP';
  fo='SOAM.OUT';
var n,i,d,max:longint;
  a:array[1..104]of longint;
  f:text;
begin
  assign(f,fi);reset(f);
    readln(f,n);
    for i:=1 to n do readln(f,a[i]);
  close(f);
  assign(f,fo);rewrite(f);
    max:=low(longint);
    for i:=1 to n do
      if(a[i]<0)and(a[i]>max)then max:=a[i];
    for i:=1 to n do 
      if a[i]=max then inc(d);
    if d>0 then write(f,d) else write(f,-1);
  close(f);
end.

Câu hỏi trong lớp Xem thêm