Първите трима

Да се напише програма, която позволява да се въведат броят на участниците в някакво състезание и постижението на всеки от тях (реално число). После програмата да извежда първите 3 най-добри постижения.

 

Публикувано в 10в с етикети . Постоянна връзка.

2 коментара по Първите трима

  1. kaloyan каза:
    VAR a:array[1..100] of integer;
        n,i,j,swap,imin:integer;
    BEGIN
      write('Broi uchastnici: '); readln(n);
      writeln('Rezultati:');
      for i:=1 to n do
        readln(a[i]);
      for i:=1 to n-1 do begin
        imin:=i;
        for j:=i+1 to n do
          if a[j]<a[imin] then imin:=j;
        if imin<>i then begin
          swap:=a[i];
          a[i]:=a[imin];
          a[imin]:=swap;
        end;
      end;
    writeln;
    writeln('Rezultat:');
      for i:=n downto n-2 do
        writeln(a[i]);
    
    readln;
    END.        
    
    • Данаил каза:

      Вярно! Ако беше ги сортирал в намаляващ ред, тогава можеше да вземеш първите трима вместо последните трима.

      Това е едното решение. Помисли има ли решение, при което не сортираш първо целия масив. Защото сортирането на постиженията на всички участници, особено ако участниците са много, би забавило програмата, а оттам и съобщаването на победителите, за което публиката и всички участници са толкова нетърпеливи :-)

Вашият коментар